summaryrefslogtreecommitdiff
path: root/macros/hptex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-01-30 03:00:44 +0000
committerNorbert Preining <norbert@preining.info>2024-01-30 03:00:44 +0000
commit084f5d8435744b7ea7ef487ec111a7bfd100ed62 (patch)
treed4e91f6ef6d075509a2b33942f57337725089951 /macros/hptex
parent6c43653052d016d5913aabb728c484f0e62b4754 (diff)
CTAN sync 202401300300
Diffstat (limited to 'macros/hptex')
-rw-r--r--macros/hptex/dochc.tex827
-rw-r--r--macros/hptex/hpmanual.tex1240
-rw-r--r--macros/hptex/hptex.doc751
-rw-r--r--macros/hptex/hptex.tex836
-rw-r--r--macros/hptex/macroshc.tex897
5 files changed, 0 insertions, 4551 deletions
diff --git a/macros/hptex/dochc.tex b/macros/hptex/dochc.tex
deleted file mode 100644
index 1b287b14e5..0000000000
--- a/macros/hptex/dochc.tex
+++ /dev/null
@@ -1,827 +0,0 @@
-% FILE DOCHC
-%
-% *** Source for hardcopy of Documentation for HP TeX Macros ***
-% Copyright 1984 Hewlett-Packard Co.
-%
-\catcode`@=11
-\def\itemlist#1{\medskip\resetsubitems\itemset@\@ne\@ne{#1}}
-\def\itempar{\smallskip\itemset@\@ne\@ne\empty} \catcode`@=12
-\def\spacechar{\hskip1pt\lower3pt\vbox{ \hbox to 5pt
- {\vrule height4pt width.009in \hfill
- \vrule height4pt width.009in} \hrule depth.009in
- height0pt}\hskip2pt}
-\def\langle{$\mathchar"4268$}
-\def\rangle{$\mathchar"5269$}
-\def\evenheading{\vbox{\hbox to \hsize{\eightrm Page \folio\hfil\HPTEX}
- \nointerlineskip\vskip2pt
- \hbox{\vrule width \hsize height .4pt}}}
-\def\oddheading{\vbox{\hbox to \hsize{\eightrm Documentation\hfil Page \folio}
- \nointerlineskip\vskip2pt
- \hbox{\vrule width \hsize height .4pt}}}
-
-\def\noheading{\hfil}
-\headline{\ifnum\pageno=1\noheading
- \else\ifodd\pageno\oddheading\else\evenheading\fi\fi}
-\def\NOTE#1:{\itemlist{\hbox to .7in{NOTE\hfil#1}:}}
-\def\\{$\backslash$}
-\parindent.825in
-\parskip5pt
-\nopagenumbers
-\inset=.825in
-\def\section#1{\relax}
-
-\null
-\vskip.75in
-\centerline{\twelvebf DOCUMENTATION FOR \HPTEX\ MACROS}\footnote{}{\hskip-.76in
- \eightrm\copyright 1984 Hewlett-Packard Co.}
-\smallskip
-\centerline{version A.00.00, Feb. 14, 1984.}
-\vskip1in
-\NOTE 1: PLAIN is read in as a separate file.
-
-\NOTE 2: ``@'' temporarily becomes a letter so that \HPTEX\ can use the
- internal control sequences of PLAIN, and to avoid conflict between
- the internal control sequences of \HPTEX\ and user names.
-
-\NOTE 3: This defines leaders used in the table of contents macros.
-
-\section{FONTS}
-
-\NOTE 4: \HPTEX\ has fonts available in sizes from 5 points to 24 points. The
- fonts loaded in Plain are listed as comments to make it easier to
- verify the fonts available.
-
-\NOTE 5: In case a font is used in a write or message.
-
-\NOTE 6: \\fontdef\#1\#2 defines the control sequence for the font, but the
- font is not loaded until the first time the control sequence is
- actually used. The first parameter is the control sequence to be
- defined; the second is the external font name.
-
-\section{MACROS TO SET FSTYLE}
-
-\NOTE 7: These macros set the family and the background style. Then, using
- \\setfont, they set the current font.
-
-\section{MACROS TO SET FSIZE}
-
-\NOTE 8: These macros set the background font size, and then use \\setfont to
- set the current font. \\baselineskip and \\strutbox are set to
- values appropriate to the font size. The fonts in families 0, 1,
- and 2 are changed to appropriate sizes. The fonts that are not
- already loaded, are not loaded unless they are needed by an entry
- into either math mode or display mode.
-
-\section{MACROS TO SET CURRENT FONT USING FSTYLE AND FSIZE}
-
-\NOTE 9: \\tryfont\#1 sets \\nofont@ to true if the control sequence determine
- by the current background font size and style (\#1) has not yet been
- defined. If the control sequence does exist, \\nofont@ is set to
- false, and the control sequence is invoked.
-
-\NOTE 10: \\setfont uses \\tryfont to set the current font based on the
- background font size and style. If there is no control sequence
- defined for that font, then \\tryfont is used again to check for a
- font with the background size and in roman style. If there is
- still no control sequence defined for that font, the size ten and
- style roman is tried. This will always succeed in \HPTEX.
-
- \itempar\\{f}fam will be a third factor in determining the current
- font when other font families become available.
-
-
-\section{DEFAULTS}
-
-\NOTE 11: The default values in \HPTEX\ are family0 and font \\tenrm, with a
- background style of roman, a background size of ten points, and a
- superscript/subscript size of seven points.
-
-\section{LINE MACROS}
-
-\NOTE 12: These line setting macros take \\leftskip and \\rightskip into
- account.
-
-\section{MORE MACROS}
-
-\NOTE 13: This replaces Knuth's definition of \\narrower. \\narrow@ is used in
- the note and warning macros.
-
-\NOTE 14: \\need is followed by a dimension x. It uses \\need@ to determine
- if x space remains on the page, and if not, causes an eject to
- the next page.
-
- \itempar\\need@ depends on \\okbreak which merely encourages a page
- break at that point. Its effect is dependent on its nearness to
- the bottom of the page, and whether the text following the \\need
- fits completely on the page or not.
-
-\NOTE 15: \\for provides a for-loop. Parameter \#1 (\\fcount@) contains the
- variable name; \#2 is the initial value of the variable; \#3
- (\\fexit@) is the terminating value; \#4 (\\floop@) contains the
- instructions to be done in the loop. The loop will not execute
- unless the initial value (\#2) is less than or equal to the
- terminating value (\#3). \\next@ is set to \\fnext@.
-
-\NOTE 16: \\fnext@ provides the looping capability for \\for. It executes
- \\floop@ and then checks to see if \\fcount@ has reached the
- terminating value. If it hasn't, then \\fcount@ is incremented. If
- the terminating value has been reached, \\next@ is set to \\relax.
- \\next@ is then entered and depending on its current meaning, either
- the loop is repeated via \\fnext@, or \\relax ends the looping.
-
-
-\NOTE 17: \\uline\#1 makes a \\vbox containing \#1 with a horizontal rule .23em
- under its baseline, and then creates an \\hbox containing the vbox
- lowered by the amount necessary to place the baseline of \#1 in line
- with the baseline of the current line of text.
-
-\section{START AND FINISH GROUP STRUCTURE}
-
-\NOTE 18: \\start\#1 and \\finish\#1 define local nestable blocks. In the
- event of any error, the error message is delayed until corrections
- are complete.
-
-\NOTE 19: \\start\#1 uses \\{if}invalid@ to determine if \#1 is a valid
- blockname. If it is, a block (group) is begun and \\blockname@
- stores \#1 as the name of the current block. The control sequence
- \\BEGIN\#1 is invoked and \\Error is called to print out any error
- messages.
-
-\NOTE 20: \\finish\#1 calls \\{if}invalid@ to determine if \#1 is a valid
- blockname. If it is valid, \\matchup@ is called to close block \#1.
- \\Error is called to print out any error messages.
-
-\NOTE 21: \\{if}invalid@\#1 tests to see if the control sequence \\BEGIN\#1
- has been defined. If it has not been defined, it is ignored
- and \\errset is called to store an error message.
-
-\NOTE 22: \\matchup@\#1 closes blocks as follows: if a \\finish is used when no
- block currently exists, it is ignored. if a finish does not match
- the current blockname, blocks are closed until either a match is
- found or all blocks are closed. The parameter is the parameter to
- \\finish.
-
-\NOTE 23: \\done closes the current block.
-
-\section{GENERAL ERROR HANDLING}
-
-\NOTE 24: These macros are used for general purpose error handling.
- \\errfalse clears the error status. \\errset assumes an argument of
- an error message; any use of \\errset sets the error status and
- produces an error message when \\Error is encountered.
-
-\section{DATE AND TIME MACROS}
-
-\NOTE 25: \\mon sets the current month with the current font.
-
-\NOTE 26: \\date sets the current date: \langle month\rangle
- \langle day\rangle,
- \langle year\rangle.
-
-\NOTE 27: \\hour sets the current time of day in 12 hour format:
- \langle hour\rangle:\langle minutes\rangle \langle AM or PM\rangle.
-
-\section{INDENTSTYLE}
-
-\NOTE 28: The switch \\{if}indent acts as a flag to indicate when \\indentstyle
- is being used. This is used in \\indentstyle, \\noindentstyle, and
- \\indentspace.
-
-\NOTE 29: \\indentstyle sets \\parindent to \\indentsize. If \\indentstyle is
- already in effect, \\parskip is not changed. If \\indentstyle is
- not already in effect, \\parskip is decreased by 5 points.
-
-\NOTE 30: \\noindentstyle sets \\parindent to zero points. If \\indentstyle is
- in effect, \\parskip is increased by 5 points, otherwise it is not
- changed.
-
-\NOTE 31: \\indentspace will update \\parindent only if \\indentstyle is in
- effect.
-
-\section{RAGGED MARGIN}
-
-\NOTE 32: \\fixmargin@ preserves the original \\rightskip.
-
-\NOTE 33: \\justify undoes the effects of \\raggedright by returning to the
- original \\rightskip, and resetting the interword and intersentence
- space to the default values.
-
-\NOTE 34: \\raggedright saves the original \\rightskip with \\fixmargin@, adds
- some stretch to \\rightskip, and if \\tt is not in effect, fixes the
- interword and intersentence spaces.
-
-\NOTE 35: \\tt@ is used in \\raggedright in the \\ifx comparison. It is
- necessary if the comparison is to succeed.
-
-\section{ITEM AND SUBITEM}
-
-\NOTE 36: \\itemset@ takes three parameters: \#1 specifies the left
- indentation (in multiples of \\inset), \#2 should be the sum of the
- left and right indentation (in multiples of \\inset), and \#3 is
- the tag to be hung to the left of the item. The line size is in
- \\dimen@. \\parshape is used to build the paragraph. The tag (\#3)
- is hung to the left of the paragraph.
-
-\NOTE 37: \\itemlist\#1 is syntactically the same as \\item, however
- \\itemlist preserves \\leftskip and \\right\-skip, and both the
- left and right margins are indented by the value of \\inset. The
- parameter contains the tag for the item. Each time \\itemlist is
- used, the subitem tag is reset, and the item tag is incremented if
- appropriate.
-
-\NOTE 38: \\subitem\#1 is syntactically the same as \\itemitem, however left an
- rightskip are preserved, and both the left and right margins are
- indented by twice the value of \\inset. The parameter contains the
- tag for the subitem. Each time \\subitem is used, the subitem tag
- is incremented, if appropriate.
-
-\NOTE 39: \\itempar creates a paragraph identical to that created by \\itemlist
- except it will have an empty tag. It can be used for the second
- paragraph of an item.
-
-\NOTE 40: \\subitempar creates a paragraph like that created by \\subitem, but
- with an empty tag.
-
-
-\section{ITEM TAG AND SUBITEM TAG MACROS}
-
-\NOTE 41: The definition of a tag must do three things:
-
- \inset1in\itempar (1) define a control sequence
- \\reset[sub]items which will be used to restart tag allocation
- between lists;
-
- \itempar (2) restart tag allocation;
-
- \itempar (3) define a control sequence \\[sub]itemtag to
- produce a tag.
- \inset.825in
-
- \itempar\\icount@ (\\scount@) holds the value used to determine
- the current item (subitem) tag for numbered and lettered tags.
-
- \itempar\\idigit@ (\\sdigit@) is used with lettered tags to keep
- track of how many times the item [subitem] tags have gone through
- the alphabet without being reset.
-
-\NOTE 42: \\itemn@\#1 is used in the allocation of numbered tags. The
- parameter is either \\icount@ or \\scount@.
-
-\NOTE 43: \\itemr@\#1 is used in the allocation of lower case Roman tags. The
- parameter is either \\icount@ or \\scount@.
-
-\NOTE 44: \\itemR@\#1 is used in the allocation of upper case Roman tags.
- The parameter is either \\icount@ or \\scount@.
-
-\NOTE 45: \\iteml@\#1\#2 is used in the allocation of lettered tags. If the
- end of the alphabet is reached, it begins again with ``aa'' or
- ``AA''. The first parameter is either \\icount@ or \\scount@. The
- second parameter is either \\idigit@ or \\sdigit@.
-
-\NOTE 46: \\item@\#1,\#2,\#3 takes three parameters: \#1 is the initial value o
- \\icount@ (item counter), \#2 is the value of \\idigit@ which is
- used to print out the appropriate number of letters when using
- letters as tags, and \#3 is the definition of the \\itemtag. It
- defines \\resetitems to be the initialization of \\icount@ and
- \\idigit@.
-
-\NOTE 47: \\itm does not take a parameter. It uses the current \\itemtag
- as the parameter to \\itemlist. If the \\itemtag is numbers or
- letters, a period is appended to the tag.
-
-\NOTE 48: \\subitem@ is similar to \\item@.
-
-\NOTE 49: \\sitm is the subitem macro equivalent to \\itm for item.
-
-\NOTE 50: The defaults are \\numbereditems and \\letteredsubitems. The
- execution of these macros defines \\itemtag, \\subitemtag,
- \\resetitems, and \\resetsubitems.
-
-\section{NOTE AND WARNING MACROS}
-
-\NOTE 51: \\BEGINnote defines the blockname ``note'' and sets the indentation
- at twice the left and right skip amounts.
-
-\NOTE 52: \\BEGINwarning defines the blockname ``warning,'' sets the indentatio
- to twice the left and rightskip amounts, and places a horizontal
- rule above the text. \\ENDwarning places a horizontal rule below
- the text.
-
-\NOTE 53: \\marginrule\#1 defines an \\hrule limited by \\leftskip and
- \\rightskip. Its only parameter specifies the height of the rule.
-
-\section{VERBATIM MODE}
-
-\NOTE 54: In verbatim mode, all characters except (\\), ($\{$) and ($\}$)
- are treated
- verbatim. Characters that cannot be extracted from the current font
- are taken from the math font and given a fixed space equal to the
- space of the current font.
-
-
-\section{LUMPLINE AND LUMPSPACE MACROS}
-
-\NOTE 55: These macros make the verbatim mode use less memory. Multiple lines
- and spaces are lumped together to make one large glob of glue
- rather than many small globs.
-
- \itempar The carriage return is made into an active character, and
- given the meaning of \\lumpline@. \\lumpline@ accumulates
- sequential carriage returns into one lump of vertical glue in
- \\skip@.
-
- \itempar ``\\{\spacechar}'' is made into an active character, and
- given the meaning of \\lumpspace@. \\lumpspace@ accumulates
- sequential spaces into one lump of horizontal glue in \\skip@.
-
-\goodbreak
-\section{PAGE CONTROL MACROS}
-
-\NOTE 56: \\newpage first balances multi-column format which transfers the
- contents of \\box 255 to \\contrb@, so it always looks like the
- page is empty immediately afterwards. The box \\contrb@ is checked
- to see if the page is really empty.
-
- \itempar If \\newpage occurs at the bottom of a full page, the
- \\null\\vfill remains in recent contributions and causes an extra
- page to be ejected. The workaround is to insert an \\eject in the
- document just before the \\newpage (or the macro containing the
- \\newpage).
-
- \itempar The same problem occurs with \\evenpage and \\oddpage, and
- the same workaround is effective.
-
-\section{HEADING AND FOOTING MACROS}
-
-\NOTE 57: Headlines and footlines are constructed as follows:
-
- \inset1in
- \itempar (1) under normal conditions the centered heading or
- footing is centered, but in the event that one (or more) of the
- headings or footings are too wide, space is distributed if possible
- so there is no overlap. The macro triplehead@ does this.
-
- \itempar (2) inside and outside headings and footings have priority
- over left and right headings and footings. \\buildline takes care
- of this.
- \inset.825in
-
- \itempar Notice that if the tokens in an \\hbox have width 0pt, it
- is assumed they are empty.
-
- \itempar The macros and token registers associated with headings
- and footings should be used near forced page breaks or at the
- begining of the document. TeX scans ahead when building a page, so
- the use of these macros could affect the previous page.
-
-\NOTE 58: \\buildline decides which tokens will be on the left and right of
- the headline or footline that is being constructed. \\lft and \\rght
- hold the numbers of the boxes containing the tokens to be placed on
- the left and right sides of the line. They are initialized to the
- boxes for \\leftheading and \\rightheading. If the box containing the
- \\insideheading (\\box3) is not empty, then for an odd page \\lft is
- set to 3, and for an even page \\rght is set to 3.
-
- \itempar If the box containing the \\outsideheading (\\box4) is not
- empty, then for an odd page \\rght is set to 4, and for an even
- page \\lft is set to 4.
-
- \itempar \\triplehead is called to actually construct the line.
-
-\NOTE 59: \\triplehead\#1\#2\#3 requires three parameters. \#1 is the number of
- the box that is to go to the left, \#2 is the box number for the
- center, and \#3 is the box number for the right. \\skip@ is the glue
- to go between the left and center boxes, and \\skip@ii is the glue
- to go between the center and right boxes.
-
- \itempar If the width of the left box is greater than the width of
- the right box, \\skip@ii is increased by the difference, otherwise,
- \\skip@ is increased by the difference.
-
- \itempar The line is then built by stringing together the boxes and
- glue.
-
-\NOTE 60: \\loadbox\#1\#2 takes two parameters: \#1 is the box number, \#2 is t
- token list to be put in the box.
-
-\NOTE 61: \\headline checks to see if headings are turned on or off. If on,
- it loads the appropriate boxes with the various heading token
- lists and calls \\buildline. If off, it adds horizontal glue, and
- if \\suspendheading is in effect, updates the \\headcount.
-
-\NOTE 62: \\footline is similar to \\headline.
-
-\section{BOX MACROS}
-
-\NOTE 63: \\boxit\#1 takes as its parameter the text to be placed in the box,
- and can be used when a real box is wanted, e.g.,
- \\setbox0\\boxit$\{${$\ldots$}$\}$.
- \\boxit uses \\halign to center the lines of text, separated by \\cr,
- within the box.
-
- \itempar The value of \\boxline determines the thickness of the
- rule around the box. The value of \\boxspace determines the amount
- of space between the rule and the text.
-
-\NOTE 64: \\centerbox\#1 takes as its parameter the text to be boxed, and then
- uses \\centerline to center the box resulting from \\boxit\#1. The box
- is separated from surrounding text by \\abovedisplayskip and
- \\belowdisplayskip.
-
-\NOTE 65: \\textbox\#1 takes as its parameter the text to be boxed. It places
- the boxed text in the current line (or begins a new paragraph if
- encountered in vertical mode) with the baseline of the enclosed
- text lined up with the baseline of the line.
-
-\section{HP2680A and HP2688A COPY CONTROL MACROS}
-
-\NOTE 66: These commands control the number of copies per page. Owing to the
- synchronization problems associated with TeX, these should only be
- used near forced page ejects or at the begining of a document.
-
- \itempar \\globalspecial writes the parameter to the postamble of
- the PIF file.
-
- \itempar \\copycnt contains the number of the register that the PIF
- server will look in to find the number of copies desired.
-
- \itempar \\oldcopy contains the number of copies desired. The
- default is two, so if \\copieson is invoked before the user has
- used \\copies\langle n\rangle, two copies will be generated.
-
-\section{HP2680A and HP2688A LOGICAL PAGE CONTROL (LPC) MACROS}
-
-\NOTE 67: \\lpcount@ holds the number of the register to be interpreted
- by the PIF driver for explicit logical page control.
-
- \itempar\\nextlp@ holds the page control number to be put into
- \\count\\lpcount@.
-
- \itempar These macros avoid the synchronization problems of TeX by
- interjecting a page eject at an appropriate time. At the beginning
- of the document and after each \\shipout, the ``empty@'' flag is set
- to true.
-
- \itempar If an LPC macro occurs when the ``empty@'' flag is true, \\ne
- is updated, its value is put into \\count\\lpcount@, and the flag
- is set to false.
-
- \itempar If an LPC macro occurs when the ``empty@'' flag is false, \\n
- is updated, but the value in the register \\count\\lpcount@ is not
- changed. After the next shipout, \\count\\lpcount@ is updated by
- the output routine.
-
- \itempar The codes for \\lpreset and \\lpexit will, if left alone, onl
- for one page.
-
-\section{TABLE MACROS}
-
-\NOTE 68: The table macros are complex. It is recommended that anyone
- wanting to understand how they work examine the LOG file of
- a table made with \\tracingmacros=1 and \\tracingcommands=2.
-
- \itempar The table macros use unallocated dimension and token
- registers to store the column specifications. New dimensions or
- tokens should not be allocated between the \\tableformat and the
- last \\tablerow or \\tablebar in a table. If any are allocated the
- result will be a very strange looking table and a TeX error. If
- too many columns, dimensions, tokens or inserts are allocated, an
- error message is given and the registers are used anyway.
-
- \itempar A row is processed in sections. \\parseline@ takes
- sections of the parameter to \\tableformat or \\tablerow. Each
- section is delimited by a ``\~{}''. \\parsecol@ takes sub-sections
- of the section where each sub-section is delimited by a ``$|$''.
- After a sub-section is processed, the next sub-section is fetched
- until the end of a section is reached. The next section is then
- fetched and processed until the end of the original parameter to
- \\tableformat or \\tablerow is reached.
-
- \itempar \\span is temporarily redefined during the execution of
- either a \\tablerow or \\tablebar macro to allow spanning of
- multiple columns.
-
- \itempar The standard table specifications are \\leftline,
- \\rightline, \\centerline and (for internal columns) \\paragraph.
- You can also make your own. There are only two rules:
-
- \inset1in
- \itempar(1) your macro will have one parameter (the text)
-
- \itempar(2) your macro will yield a box of width \\hsize.
- \inset.825in
-
-\NOTE 69: \\uptoks@ increments \\cntA@, used as a pointer to a token register
- to hold column alignment specifications, and \\cntB@, used as a
- pointer to a dimension register used to hold column width specifi\-%
- cations. If too many token registers are used, an error message is
- printed, and processing continues.
-
-\NOTE 70: \\bump@ increments \\cntC@, which contains the number of columns
- processed in the current \\tablerow or \\tablebar. If the total number
- of columns specified in the \\tableformat has not yet been processed,
- then \\cntC@ is incremented, and \\uptoks@ is called to increment the
- pointers to the registers that hold the column specifications.
-
-\NOTE 71: \\tableformat\#1 has as its parameter the description of the table
- format. The alignment for the entire table is given first,
- followed by the formats for each column. A column format consists
- of its alignment followed by its width. A ``$|$'' separates the
- table format from the column formats, and each column format from
- the next.
-
- \itempar \\tableformat first calls \\tablelet with the three
- parameters \\just@, \\just@, and \\relax.
-
- \itempar Next, \\parse@ (which has been assigned the meaning of
- \\parseline@) is called and sent one parameter, which is delimited
- by ``\lower4pt\hbox{\~{}}''. This effectively sends the contents
- of the parameter of \\tableformat up to the first
- \lower4pt\hbox{\~{}} to \\parse@ (\\parseline@). The \\done@ is
- an undefined control sequence used to mark the end of the
- specifications in the \\tableformat.
-
-\NOTE 72: \\tablerow\#1 is similar to \\tableformat. Its parameter is a list
- of the contents for each column of the row. Each column must start
- and terminate with either a ``$|$'' for a visible bar, or a
- ``\lower4pt\hbox{\~{}}'' for an invisible bar.
-
- \itempar The parameters sent to \\tablelet are: \\bbar@, \\wbar@,
- and \\endrow@.
-
-\NOTE 73: \\tablebar\#1 sets horizontal rules across the table. It resets
- \\topstrut, \\botstrut, and \\table\-space, and then passes its
- parameter to \\tablerow. Its parameter is a list of column
- contents, with each column indicated as for \\tablerow. A
- column can be empty, contain a \\vrule, or contain \\tbar.
-
-\NOTE 74: \\tablelet requires three parameters. The first is assigned to the
- control sequence \\b@, the second to \\w@, and the third to \\f@.
- \\CntA@, \\CntB@, and \\CntC@ are initialized. \\parse@ is assigned
- the meaning of \\parseline@. If currently in horizontal mode,
- vertical mode is entered; if in vertical mode, interline glue is
- inhibited.
-
-\NOTE 75: \\just@\#1 is never invoked directly. The control sequences \\b@
- and \\w@ are \\let to be \\just@ in \\tablelet when \\tablelet is
- called from \\tableformat. \\just@ is invoked by \\parsecol@ the
- first time \\parsecol@ is entered. The parameter to \\just@ is the
- alignment specification for the table.
-
- \itempar \\just@ assigns the control sequences \\b@ and \\w@ the
- meaning of \\tform@, and initializes \\maxcol@ to 0. The control
- sequence \\tablejust@ is assigned the table alignment
- specification (\#1).
-
-\NOTE 76: \\tform@\#1 passes its parameter, which is the set of specifications
- for a column, on to \\tform@@ with a \lower 4pt\hbox{\~{}}
- deliminating the parameter.
-
-\NOTE 77: \\tform@@\#1\#2\lower 4pt\hbox{\~{}} updates the pointers to the
- registers to be used for storing column specifications, puts the
- column alignment (\#1) into the current token register, and the
- column width (\#2) into the current dimension register. Then
- \\maxcol@ is incremented to count the column just completed.
-
-\NOTE 78: \\bbar@\#1 begins a row that starts with a visible vrule. The
- parameter is empty.
-
-\NOTE 79: \\wbar@\#1 begins a row that starts with an invisible vrule. The
- parameter is empty.
-
-\NOTE 80: \\beginrow@\#1 reassigns \\b@ and \\w@ the meanings of \\vbar@ and
- \\ibar@ respectively. The parameter is empty.
-
- \itempar Box 0, an \\hbox that will contain the row, is begun with
- a \\bgroup, and the assignments that should hold within the box are
- made.
-
-\NOTE 81: \\endrow@ finishes Box 0 and aligns the resulting box according to
- \\tablejust@.
-
-\NOTE 82: \\vbar@\#1 adds a column entry that terminates with a visible \\vrule
- The parameter contains the column entry.
-
-\NOTE 83: \\ibar@\#1 adds a column entry that terminates with an invisible
- rule. The parameter contains the column entry.
-
-\NOTE 84: \\cs@\#1 determines if a column entry (\#1) spans multiple columns,
- and invokes \\span@ with the appropriate parameters.
-
-\NOTE 85: \\parseline@\#1\lower 4pt\hbox{\~{}} is called by \\tableformat and
- \\tablerow (and indirectly by \\tablebar). Its parameter is the
- part (section) of the parameter to the calling macro terminated by
- the first occurrence of ``\lower 4pt\hbox{\~{}}'' . If the
- parameter is \\done@, then processing is complete, and \\parse@ is
- assigned the current meaning of \\f@, which is \\relax if
- \\parseline@ was called from \\tableformat, or \\endrow@ if
- \\parseline@ was called from \\tablerow.
-
- \itempar If processing is not done, \\p@ss is assigned the meaning
- of \\parsecol@, and then \\p@ss is invoked and its parameter is
- that part (sub-section) of the parameter to \\parseline@ up to the
- first occurrence of ``$|$''. \\done@ is an end of processing
- indicator. \\parse@ is invoked and, depending on its current
- assigned meaning, either terminates processing of this
- \\tableformat or \\tablerow parameter, or takes the next section of
- the parameter of the \\tableformat or \\tablerow terminated by
- \lower 4pt\hbox{\~{}} as its parameter.
-
-\NOTE 86: \\parsecol@\#1 is called by \\parseline@ and has as its parameter tha
- part (sub-section) of the parameter to \\parseline@ up to the next
- occurrence of $|$. It defines the macro \\parsemode@: if we are on
- the last column, then the currently assigned value of \\w@
- (\\tform@ or \\ibar@, depending on whether a \\tableformat or a
- \\tablerow is being processed) is invoked, and \\p@ss becomes
- \\lastp@ss; if we are not on the last column, then \\b@ (which is
- either \\tform@ or \\vbar@) is invoked; in either case, \\p@ss is
- called again and will either terminate processing or get the next
- section to be processed.
-
-
-\NOTE 87: \\span@\#1\#2 sets a box spanning the required number of columns and
- containing the text in the parameter. \\hsize and \\z@ are set to
- the width and alignment specifications respectively of the first
- column spanned. The pointers are then incremented once for each
- column spanned, and the width of each column plus the width of a
- vertical bar is added to the \\hsize for each column spanned. The
- first parameter is the integer following \\span, and the second is
- the remainder of the column contents.
-
-\section{SECTION AND HEADING MACROS}
-
-\NOTE 88: These macros are used for head or section level control.
-
- \itempar\\basehead is the zero pointer value for the four pointers
- to the head counters. The head counters count the number of
- current headings at each heading level.
-
- \itempar\\headlevel keeps track of the level of the current
- heading.
-
- \itempar To add a fifth level, do the following:
-
- \inset1in
- \itempar(1) Change the ``\\advance\\count10 by~4'' command to
- ``\\advance\\count10 by~5''. This allocates the counters for the
- level number.
-
- \itempar(2) Change ``\\ifnum\\hdlevel$<$4 '' to
- ``\\ifnum\\hdlevel$<$5'' in the \\sethead@ macro.
-
- \itempar(3) Allocate a new token register, \\fifthlevelhead, and
- define a corresponding \\headE@:\hfil\break
- \\def\\headE@$\{$\\head5\\the\\fifthlevelhead$\}$.
-
- \itempar(4) Modify the \\level macro so that it includes
- \\headE@.
-
- \itempar(5) Load \\fifthlevelhead with some appropriate tokens.
- \inset.825in
-
-\NOTE 89: \\setlevelno\#1 has one parameter: the levelnumber to be established.
- This can be up to 4 numbers, separated by periods. The level number
- and the pointer to the head counters are initialized.
-
- \itempar``.-1.'' is appended to the parameter to act as an end of
- parameter signal.
-
-\NOTE 90: \\sethead@\#1. has as its parameter one of the num\-bers in the
- parameter to \\setlevelno. The first num\-ber it receives is put into
- the head counter for the first level. The second number goes into
- the head counter for the second level, etc. Processing is
- completed when -1 is received as a parameter, or when 4 levels have
- been done.
-
-\NOTE 91: \\head\#1 is called indirectly by \\level via \\headA@, or \\headB@,
- etc. It oversees adjusting the \\levelno according to the level of
- the new heading. Its parameter is the level of the new
- heading.
-
- \itempar If the new heading is on a level inferior to the current
- heading, \\uplevel@ is called, otherwise \\headlevel is set to the
- level of the new heading and that head counter for that level is
- incremented.
-
- \itempar\\head@ is called to update \\levelno.
-
-\NOTE 92: \\uplevel@\#1 does what is necessary to add a level that has a
- higher
- number than the current level. \#1 is the level of the new heading.
-
-\NOTE 93: \\head@ defines \\levelno.
-
-\NOTE 94: These allocate token registers for each level description, and
- define a corresponding \\headA@ (or \\headB@ etc.) that calls \\head
- with the appropriate parameter, and accesses the tokens for that
- headlevel.
-
-\NOTE 95: \\level\#1\#2 takes two parameters: \#1 is the level of the heading,
- and \#2 becomes the definition of \\title. A case statement is
- used to invoke the appropriate choice of \\headA@, \\headB@, etc.
-
-\section{CONTENTS FILE MACROS}
-
-\NOTE 96: ``\\content@'' can now be written with \\write
-
-\NOTE 97: \\ctswrite\#1 writes its parameter into a file along with the current
- page number. If the file does not already exist, one is created.
- When the file is read at a later time, @ will not be a character.
- \\{\_} is redefined so that it can be read from the contents file.
- \\content@ is defined with @ no longer a character so that it can be
- read from the contents file.
-
-
-\NOTE 98: \\contents adds the table of contents if a contents file was
- created.
-
-\section{FOOTNOTES AND INSERTIONS}
-
-\NOTE 99: The \\vfootnote\#1 of PLAIN has been modified to accommodate
- multi-column format by the insertion of \\realhsize to restore the
- original \\hsize and by adding ``1\\baselineskip'' to remove any
- glue from \\baselineskip.
-
-\NOTE 100: \\note generates footnotes with sequential numbers.
-
-\NOTE 101: \\midinsert has been changed from the definition in PLAIN by
- the insertion of \\p@gefalse.
-
-\NOTE 102: \\@ins has been changed from the definition in PLAIN by adding a
- return to the normal \\hsize and \\vsize.
-
-\NOTE 103: The \\endinsert of PLAIN has been modified. The ``room left on page''
- calculation has been expanded to handle multi-column format: if
- there is room, the columns are balanced and the insertion is
- appended. The penalty (first item in the \\insert) is set to -100 if
- the insertion cannot fit on the current page, this keeps the page
- from stretching if the insertion can't fit on the page.
-
-\section{COLUMN MACROS}
-
-\NOTE 104: The column macros and output routines are interrelated. Every time
- the number of columns changes, a false output routine is invoked.
- This routine takes the current page (and splits it up if necessary)
- and appends it to the contrib box. The \\hsize is then reduced (or
- restored) and the \\vsize is multiplied (or restored). Then, to
- every insert which was not void during the false output routine a
- null insert is made. This restores the page goal (in case there are
- no bona fide insertions, one insertion is always made, it is called
- \\hacker@). A new page total is then calculated from the height of
- the contrib box. The two macros employed to do this work are
- \\balance@ and \\newtotal@. Under no circumstances should the one be
- used without the other.
-
-\NOTE 105: \\balance invokes the false output routine which has the effect of
- balancing the columns if in multi-column mode. The page goal is
- then updated by \\newtotal@.
-
-\NOTE 106: \\balance@ invokes the false output routine by setting \\ifreal@ to
- false, and forcing an eject.
-
-\NOTE 107: \\newtotal@ restores the page total.
-
-\NOTE 108: \\multicol@\#1 is called by the \\BEGIN command for multi-column
- format. It takes as its only parameter the number of columns
- requested. It provides error checking and ignores the command
- if already in multi-column mode. If the command is legal, then
- the current page is balanced, and the \\hsize and \\vsize are
- adjusted. The insertion registers are modified, the page total
- is adjusted, and stretch is added to \\baselineskip.
-
-\section{OUTPUT ROUTINES}
-
-\NOTE 109: The output routines are complex. It is recommended that anyone
- wanting to understand how they work examine the LOG file of a
- file with \\tracingmacros=1 and \\tracingcommands=2.
-
- \itempar There are two types of output routines: \\realoutput@
- produces a \\shipout and \\fakeoutput@ does not.
-
- \itempar The \\toks registers associated with each insert are now
- reserved (as were \\dimen, \\skip and \\count). Any tokens in these
- registers will be destroyed when the \\output routine is active.
-
-\NOTE 110: \\realoutput puts the current page into \\out@. If currently in
- one-column mode, it goes in directly, otherwise the current page
- is first split into columns. Box 255 is then set to \\contrb@ with
- \\old@ appended to it. The glue for insertions, \\hsize, \\vsize,
- \\leftskip, and \\rightskip are returned to normal for the
- \\shipout. After the \\shipout, the flags and counters for the
- logical page macros are updated.
-
-
-\NOTE 111: \\fakeoutput takes the current page, balances it if necessary, and
- puts it into \\out@. \\out@ is then appended to \\contrb@.
-
- \itempar If any column must be shorter due to balancing, it ought
- to be the rightmost. The \\vsplit primitive, however, will usually
- make the rightmost column longer. To avoid this problem, columns
- are split a little more than 1/2 or 1/3 down. Experimentation shows
- that adding 1.16667 baselines to the total height for 2 columns,
- and adding 2 baselines to the total height for 3 columns affords
- the greatest probability of an aesthetic break.
-
-\NOTE 112: The ``@'' is no longer a letter.
-
-\bye
diff --git a/macros/hptex/hpmanual.tex b/macros/hptex/hpmanual.tex
deleted file mode 100644
index b776529494..0000000000
--- a/macros/hptex/hpmanual.tex
+++ /dev/null
@@ -1,1240 +0,0 @@
-% THIS IS FILENAME MANUAL
-%
-% ***This is the Users' Guide to the HP TeX Macro package ***
-%
-% Copyright 1984 Hewlett-Packard Co.
-%
-\let\indx=\relax
-\def\evenheading{\vbox{\hbox to \hsize{\eightrm Page \folio\hfil\HPTEX}
- \nointerlineskip\vskip2pt
- \hbox{\vrule width \hsize height .4pt}}}
-\def\oddheading{\vbox{\hbox to \hsize{\eightrm Macros \hfil Page \folio}
- \nointerlineskip\vskip2pt
- \hbox{\vrule width \hsize height .4pt}}}
-\def\noheading{\hfil}
-\headline{\ifnum\pageno=1\noheading
- \else\ifodd\pageno\oddheading
- \else\evenheading\fi\fi}
-\centerfooting{}
-
-\tolerance=1000
-\noindentstyle
-\font\hplogo=hplogo
-\font\csc=amcsc10 \def\headno{\levelno} \def\emspace{\enspace}
-\def\lb{$\langle$} \def\rb{$\rangle$}
-\def\bs{{\tt \char92}\relax}
-\font\bo=amb10
-\font\tenbo=amb10
-\def\+{{\tt \char92}\relax} \def\_{\kern.06em\vbox{\hrule width.5em}}
-\def\[{$\{$} \def\]{$\}$} \def\tbw{{\bf - TO BE WRITTEN -}}
-\def\ent{\textbox{\tt ENTER}} \def\sec{{\bf -SECTION NUMBER HERE-}}
-\def\degrees{$^\circ$}
-\def\gt{$>$}
-\def\spacechar{\hskip1pt\lower3pt\vbox{
- \hbox to 5pt{\vrule height4pt width.009in
- \hfill
- \vrule height4pt width.009in}
- \hrule depth.009in height0pt}\hskip2pt}
-
-\firstlevelhead{\need.75in\null\bigskip\leftline{\fourteenbf\levelno\enspace%
- \title}%
- \medskip\ctswrite{\hskip15pt\tenrm\title}}
-\secondlevelhead{\need.6in\medskip\leftline{\twelvebf\levelno\enspace\title}%
- \ctswrite{\hskip30pt\tenrm\title}}
-\thirdlevelhead{\need.5in\medskip\leftline{\twelvebf\levelno\enspace\title}%
- \ctswrite{\hskip45pt\ninerm\title}}
-
-\def\bs{{\tt \char92}\relax}
-\def\+{{\tt \char92}\relax}
-
-\def\tspec{\lb{\sa table spec.}\rb}
-\def\colspec{\lb{\sa column spec.}\rb}
-\def\col{\lb{\sa column list}\rb}
-
-
-\def\cmd#1{\need 0.5in\bigskip {\tentt\bs #1}\lbreak}
-%\def\mcmd#1{\need 0.5in\bigskip {{\tentt\bs #1}}\lbreak}
-%\def\\#1{\lbreak\indent{{\tentt\bs #1}}}
-\def\lb{$\langle$}
-\def\rb{$\rangle$}
-\def\[{$\{$}
-\def\]{$\}$}
-\def\blk{\lb{\sa blockname}\rb}
-\def\hor{\lb{\sa horizontal list}\rb}
-\def\int{\lb{\sa integer}\rb}
-\def\dim{\lb{\sa dimension}\rb}
-\def\ver{\lb{\sa vertical list}\rb}
-\def\vol{\lb{\sa Volume Name}\rb}
-
-\null
-\vskip1in
-\centerline{\eighteenbf THE HP \TeX\ MACROS}\footnote{}{\eightrm\copyright
- 1984 Hewlett-Packard Co.}
-
-\vskip.5in
-\centerline{HEWLETT-PACKARD CO.}
-\vskip1.47in
-
-\level1{Introduction}
-This set of macros was written as part of \HPTEX, Hewlett-Packard's software
-package designed to facilitate the use of \TeX\ on the HP Series 200 Desktop
-Computers. The \HPTEX\ program can be run on either an SRM based, or a
-stand-alone (LIF) system, and requires 1.25 Mbytes main memory and a minimum
-of 15 Mbytes mass storage. It uses an HP 2688A Laser Printer.
-
-The HP2688A is a page printer which uses scanned electrophotography technology
-to print computer output on single sheet paper. The 300 dots per inch
-resolution, high contrast and speed, plus sophisticated character printing,
-allow a high degree of application flexibility. Unique features include
-90\degrees\ rotation of page print, multiple pages of data output per printed
-sheet, and a graphics option. The print rate is approximately 12 pages per
-minute.
-
-The \HPTEX\ macro package is designed to supplement \TeX\ by providing macros
-for formating documents and for controlling the HP2688A. The user of \HPTEX\
-can use any of the \TeX\ commands as well as the \HPTEX\ macro commands.
-
-While the formating macros include macros for headings and footings,
-paragraph style, lists, lines, boxes, paragraph headings, multiple columns,
-tables, and table of contents, they are not meant to be a complete system.
-They are intended to enable the user to get
-started, and to provide useful macros that can be modified and used as
-examples by the user for the creation
-of a customized macro package.
-
-A second release of \HPTEX\ is planned that will include graphics capability.
-
-\vfil
-On \indx{syntax}
-lines, when curly braces ``\[$\ldots$\]'' are shown, they are required in the
-source file, text between
-angle brackets ``\lb$\ldots$\rb'' identifies a parameter variable,
-and the character ``\spacechar '' represents a required space.
-\vfil\eject
-
-\level1{ Document Formatting Macros}
-The following HP \TeX\ commands control the basic style and formatting
-of a document:
-
-\level2{Page Layout}
-The HP \TeX\ defaults for \indx{page layout} are the same as they are in
-the \TeX\ program. That is,
-all margins are set to approximately
-one inch from the edges. (Plain \TeX\ sets {\tt \+vsize=8.9in} and
-{\tt \+hsize=6.5in}.) \indx{Headings and footings} are printed {\bo outside}
-those margins.
-
-The following macros affect the running head and the footing of
-each page. The heading and footing lists are expanded during the
-output routine so the \TeX\ commands \indx{{\tentt\bs firstmark}},
-\indx{{\tentt\bs topmark}} and
-\indx{{\tentt\bs botmark}} are compatible here.
-
-\need.5in\bigskip\relax{{\tentt \+centerheading}}\[\hor\]\lbreak
- \relax{{\tentt \+leftheading}}\[\hor\]\lbreak
- \relax{{\tentt \+rightheading}}\[\hor\]\lbreak
- \relax{{\tentt \+outsideheading}}\[\hor\]\lbreak
- \relax{{\tentt \+insideheading}}\[\hor\]\lbreak
-These macros accept text which is to be placed at the top of every page.
-The first three macros place the argument in the center, left, or right
-of the page respectively.
-{\tt\bs outsideheading} and {\tt\bs insideheading},
-if specified, override the left and right headings. On odd pages, the
-inside heading will appear on the left, outside on the right. Even
-pages are the opposite. (This feature is helpful when the output is
-to be used as two-sided copy.)
-
-
-\need.5in\bigskip\relax{{\tentt \+centerfooting}}\[\hor\]\lbreak
- \relax{{\tentt \+leftfooting}}\[\hor\]\lbreak
- \relax{{\tentt \+rightfooting}}\[\hor\]\lbreak
- \relax{{\tentt \+outsidefooting}}\[\hor\]\lbreak
- \relax{{\tentt \+insidefooting}}\[\hor\]\lbreak
-These are like the above commands, only they are for footings at the bottom
-of each page. For example, if page numbers
-are desired in the left side of the bottom of each page, type:
-{\tt\bs leftfooting\[\indx{\bs folio\]}}
-
-{\tt\bs outsidefooting} and {\tt\bs insidefooting} will
-produce similar results as {\tt\bs outsideheading} and
-{\tt\bs insideheading} (see above). The default in HP \TeX\ is
-{\tt \+centerfooting\[\+folio\]}. This produces page numbers at
-the center of the bottom of each page.
-
-\need.5in\bigskip\relax{{\tentt \+noheading}}\lbreak
- \relax{{\tentt \+nofooting}}\lbreak
-These macros turn off headings or footings for the current and all
-successive pages until the {\tt\bs resumefooting} or
-{\tt\bs resumeheading} command is used.
-
-\need.5in\bigskip\relax{{\tentt \+suspendheading}}\int\lbreak
- \relax{{\tentt \+suspendfooting}}\int\lbreak
-These macros suspend headings or footings for the specified number of
-pages or until the use of a {\tt\bs resumeheading} or {\tt\bs resumefooting}.
-
-\need.5in\bigskip\relax{{\tentt \+resumeheading}}\lbreak
- \relax{{\tentt \+resumefooting}}\lbreak
-These macros undo the effects of the {\tt\bs suspendheading},
-{\tt\bs noheading}, {\tt\bs suspendfooting} and
-{\tt\bs nofooting} macros above.
-
-\break
-\level2{Paging}
-
-\cmd{\indx{newpage}}
-This macro forces a \indx{page eject} if not on a new page.\note{\tenpoint
-If {\tt \+newpage, \+oddpage}, or {\tt \+evenpage}
-occur at the bottom of a full page, they will cause an extra page
-eject. If this happens, insert an {\tt \+eject} just before the
-page command.}
-
-\cmd{\indx{oddpage}}
-This macro causes a page eject, and if the current page is an odd-numbered
-page, leaves an extra blank page so that the following text is
-guaranteed to begin on an odd-numbered page.
-
-\cmd{\indx{evenpage}}
-This macro is similar to oddpage, but the following text will appear on
-an even rather than an odd numbered page.
-
-The {\bo plain} \TeX\ command, {\tt\+pageno} will set the current page number
-to the specified page number. (See ``Some Useful \TeX\ Commands'' in
-Chapter~2 of this manual.)
-
-\level2{Paragraph Style}
-As \TeX\ accepts text from the input file, the text is formatted into
-paragraphs. The following commands can be used to control the shape
-of the paragraphs.
-
-
-\cmd{\indx{inset}=\dim}
-Specifies a general amount of indentation to be used with itemized
-lists, notes, warnings and indent blocks. Default is 0.5
- inch.
-
-\need.5in\bigskip\relax{{\tentt \+start\[indent\]}}\lbreak
- \relax{{\tentt \+finish\[indent\]}}\lbreak
-These commands are used to indent the left margin by the inset
-dimension. The right margin is unaffected by this block.
-
-\cmd{\indx{indentspace}=\dim}
-This command assigns the indentation value for the first line of all succeeding
-paragraphs when {\tt\bs indentstyle} is in effect. The default is
-20 points.
-
-\cmd{\indx{indentstyle}}
-This causes the first line of each paragraph to be indented
-(the amount of the indentation is assigned by the {\tt\bs indentspace}
-command). This is the default paragraph style.
-
-\cmd{\indx{noindentstyle}}
-This causes the paragraphs to be formatted with no indentation.
-The nominal \indx{spacing} between paragraphs is 5 points greater without
-indentation than when {\tt\bs indentstyle} is being used.
-\start{note}
-\centerline{-- NOTE --}
-Spacing between paragraphs can be user specified by using the {\tt
-\bs parskip} command.
-\finish{note}
-
-\level2{Itemized and Bulleted Lists}
-The following macros are aids in producing lists. The various list commands
-cause indentation at various levels and use various tokens (numbers, letters,
-dots, dashes, $etc.$) to the left of the
-first line of the listed item to set off the list entry.
-
-\need.5in\bigskip\relax{{\tentt \+numbereditems}}\lbreak
- \relax{{\tentt \+lettereditems}}\lbreak
- \relax{{\tentt \+Lettereditems}}\lbreak
- \relax{{\tentt \+romanitems}}\lbreak
- \relax{{\tentt \+Romanitems}}\lbreak
- \relax{{\tentt \+squareditems}}\lbreak
- \relax{{\tentt \+dotteditems}}\lbreak
- \relax{{\tentt \+dasheditems}}\lbreak
-These macros initialize the tag allocation macro {\tt\bs itemtag}.
-Default is {\tt\bs numbereditems}.
-
-\need.5in\bigskip\indx{{\tentt \+numberedsubitems}}\lbreak
- \relax{{\tentt \+letteredsubitems}}\lbreak
- \relax{{\tentt \+Letteredsubitems}}\lbreak
- \relax{{\tentt \+romansubitems}}\lbreak
- \relax{{\tentt \+Romansubitems}}\lbreak
- \relax{{\tentt \+squaredsubitems}}\lbreak
- \relax{{\tentt \+dottedsubitems}}\lbreak
- \relax{{\tentt \+dashedsubitems}}\lbreak
-These macros initialize the tag allocation macro {\tt\bs subitemtag}.
-Default is\lbreak {\tt\bs letteredsubitems}.
-
-\cmd{\indx{itemtag}}
-This macro causes a number, letter, roman numeral, square, dot or dash
-to be printed as the item specifier
-depending upon what initialization has taken place (see above).
-
-\cmd{\indx{subitemtag}}
-Similar to {\tt\bs itemtag} but pertains to subitems.
-
-\cmd{\indx{square}}
-This macro prints a .4em-by-.4em square ( \square\ ). This macro can be used at
-any time a horizontal list is being built (such as the middle of a
-paragraph),
-but it is particularly useful as the argument for the {\tt\bs itemlist} macro.
-(This command produces the same symbol as \TeX 's {\tt \+bull} command.)
-\cmd{\indx{dott}}
-This macro prints a solid round dot ( \dott\ ). (Same as {\bo plain} \TeX 's
-{\tt \$\+bullet\$}.)
-
-\cmd{\indx{emdash}}
-Sets a horizontal rule one ``\indx{em}'' long ( \emdash\ ).
-
-\cmd{\indx{itemlist}\[\hor\]}
-This macro introduces an item of a list by indenting both left and right
-margins by the \dim\ specified in the last {\tt\bs inset} command.
-The \hor\ is inserted within braces to specify the token
-which is to set off the text. If the token has already been
-specified (using {\tt \bs dotteditems, \bs Romanitems}, $etc.$),
-or the default {\tt \bs numbereditems} is acceptable,
-then the command {\tt \bs itemtag} can be inserted here.
-The text of the item follows. (The text
-does {\bo not\/} need to be enclosed within braces.)
-Indentation continues only for the duration
-of one paragraph (if more than one paragraph is desired in an
-item, {\tt\bs itempar} should be used).
-The use of {\tt\bs itemlist} resets the subitem tag.
-
-\cmd{\indx{subitem}\[\hor\]}
-This macro is similar to {\tt\bs itemlist}, but the indentations are twice as
-large as for {\tt\bs itemlist}. This can be used to indicate a
- second level of list. (See {\tt \bs itemlist} for contents of
- the \hor .
-
-\need.5in\bigskip\relax{{\tentt \+itempar}}\lbreak
- \relax{{\tentt \+subitempar}}\lbreak
-These macros are used to start new paragraphs within an item or
-subitem respectively.
-
-\cmd{\indx{enditems}}
-This commands properly ends an itemized list by resetting the item counter
-and appending {\tt\bs bigskip} \indx{glue}.
-
-\cmd{\indx{itm}}
-Similar to {\tt\bs itemlist\[\bs itemtag\]} except that a
-period is appended to the tag if it is a letter, number
-or roman numeral. With this command, the item tag must be
-specified ahead of time using the command
-{\tt \bs dotteditems, \bs lettereditems}, $etc.$, unless the
-default ({\tt \bs numbereditems}) is acceptable. Again,
-{\tt\bs itm} will {\bo not} accept any \hor\
-as an item tag specifier.
-
-\cmd{\indx{sitm}}
-Similar to {\tt\bs itm} but pertains to subitems. Like
-{\tt\bs itm}, {\tt\bs sitm} will {\bo not}
-accept any \hor\ as a subitem tag specifier. The subitem tag must
-be specified beforehand, unless the default
-({\tt \bs letteredsubitems}) is acceptable.
-%\need3in
-\start{note}
-\centerline{-- NOTE --}
-If you enter a local \indx{block structure} prior to setting an itemized list,
-and want to exit that structure immediately after your last item, then
-you must first be sure that you are in {\bo \indx{vertical mode}}.
-Otherwise, the last item may not be indented properly.
-
-Three ways to accomplish this are by using {\tt\bs enditems,
-\bs vskip}, or {\tt\bs par}. \finish{note}
-
-\level2{Line Specifier Macros}
-The content of individual lines can be controlled, and they can be
-centered or justified using the following
-commands.
-
-\cmd{\indx{centerline}\[\hor\]}
-This takes the text within the brackets and centers it between the
-margins. The line does not count as a paragraph, so the normal
-interparagraph space is not inserted above the line. If this command
-follows a paragraph, it is
-usually appropriate to precede it with a {\tt\bs vskip}. This command
-has been redefined from {\bo plain} \TeX\ in that it uses the
-HP macro {\tt \+lline} (described below), so {\tt \+leftskip}
-and {\tt \+rightskip} values are taken into account.
-
-\cmd{\indx{lline}\[\hor\]}
-This is very similar to the plain \TeX\ {\tt\+line} command
-in that it creates a horizontal box that is the width of the current
-{\tt\+hsize}, except that {\tt\+lline} takes into account
-the values of {\tt\+leftskip} and {\tt\+rightskip}
-if they have been specified. In other words {\tt\+lline}
-stays within the current margins. The \hor \ is the contents of
-the horizontal box.
-
-
-\cmd{\indx{leftline}\[\hor\]}
-This left justifies the contents of the \hor . The comments about vertical
-spacing above apply here, also. This command has also been redefined
-to use {\tt \+lline} (see {\tt \+centerline}, above).
-
-\cmd{\indx{rightline}\[\hor\]}
-This right justifies the contents of the \hor . The comments about vertical
-spacing above apply here, also. This command has also been redefined
-to use {\tt \+lline} (see {\tt \+centerline}, above).
-
-\cmd{\indx{raggedright}}
-The {\tt\bs raggedright} macro causes paragraphs to be formatted
-in such a way that they are not necessarily justified
-on the right margin. This command has also been redefined from
-{\bo plain} \TeX\ in that {\tt \+rightskip} values are preserved.
-
-\cmd{\indx{justify}}
-This macro has the opposite effect of the {\tt\bs raggedright} macro
-and causes the text to be right justified
-({\tt\bs justify} is the default in HP \TeX ).
-
-\level2{Boxes}
-
-\cmd{\indx{boxline}=\dim}
-This macro assigns the width of the lines used for {\indx{boxes}. The default
-boxline dimension is 0.01332 inch.
-
-\cmd{\indx{boxspace}=\dim}
-This macro assigns the width of the space between a boxed item and
-the line of the box. The default width in HP \TeX\ is 5 points.\super{4}
-
-\cmd{\indx{boxit}\[\hor\]}
-This macro encloses the argument in a box. If encountered
-while making a line of text, the box's bottom line will
-be along the baseline of the text. The \hor\ may contain multiple
-lines separated by {\tt\bs cr} to be centered within the box. Note
-that each line is then treated as a {\bo group}, so font changes,
-$etc.$~on one line will not affect the next line.
- When using this command, the \hor\ will be
-raised somewhat above the line, \boxit{like this.}
-If you desire that the text not be raised above the baseline,
-use the {\tt\bs textbox} command (described below).
-
-\cmd{\indx{textbox}\[\hor\]}
-This command causes a box to be placed around the \hor ,
-{\bo without} altering the text, \textbox{like this.} A
-textbox cannot be broken from one line of text to another.
-
-\cmd{\indx{centerbox}\[\hor\]}
-This macro centers a box horizontally on the page
-and inserts space above and below.
-Multiple lines can be specified using {\tt\bs cr} (see
-{\tt \bs boxit} description). A {\tt \+centerbox} within a
- {\tt \+centerbox} will not work, but {\tt \+boxit} inside
- {\tt \+centerbox} will.
- %\need1.25in
-\level2{Notes and Warnings}
-Two other text structures available with the HP \TeX\ macro package are notes
-and warnings.
-
-\need.5in\bigskip\relax{{\tentt \+start\[note\]}}\lbreak
- \relax{{\tentt \+finish\[note\]}}\lbreak
-A note is inset twice the {\tt\bs inset} dimension on both margins and
-set apart from the rest of the text by extra vertical space.
-If a note would otherwise start less than half an inch from the
-bottom of a page, a page eject is performed prior to the note.
-{\tt\bs finish\[note\]} signifies the end of the note.
-
-\need.5in\bigskip\relax{{\tentt \+start\[warning\]}}\lbreak
- \relax{{\tentt \+finish\[warning\]}}\lbreak
-A warning is similar to a note, except that is also set apart by horizontal
-rules above and below the text. {\tt\bs finish\[warning\]}
-signifies the end of the warning text.
-
-\level2{Verbatim Mode}
-Verbatim mode will cause text to be printed ``as is,''
-without any justification. Special characters in this mode
-are the backslash (\bs ) and the curly brackets (\[), (\]).
-Most other characters can be used and will be printed \indx{verbatim}.
-
-Verbatim mode is intended for use with simple text which does
-{\bo not} contain a large number of control sequences.
-The reason for this restriction is that there are many
-characters (such as a space, a \indx{tilde}, $etc.$)
-which take on different meanings in verbatim mode. Some of these may be
-imbedded within a control sequence and can cause
-problems when they are expanded.
-
-You will usually want to select a ``non-proportionally spaced''
-font (like ``tt'') for use in verbatim mode. The
-reason for this is that ``proportional fonts'' (like ``rm'')
-will cause the printed output to be aligned differently
-than what appears on the CRT during source file typing. Other
-non-proportional fonts available with the HP 2688A Laser Printer
- are Courier, Gothic, Pica, Script, Prestige and Line Printer.
-
-\start{note}
-\centerline{-- NOTE --}
-Although verbatim mode using \indx{non-proportional fonts} will
-{\bo usually} produce output
-that exactly matches what you see on the CRT, there is
-at least one exception to this. Long sequences of characters
- may be spaced
-slightly differently than a string
-of blank spaces of identical length . This is
-a result of the rounding anomalies that occur when \TeX 's
-{\bo ideal} character sizes are converted to the printer's
-{\bo actual} sizes.
-\finish{note}
-\cmd{\indx{start\[verbatim\]}}
-This macro causes the following text to be printed ``verbatim''
-without any justification.
-
-\cmd{\indx{finish\[verbatim\]}}
-This macro ends the verbatim mode described above.
-
-%\need1.25in
-\level2{Paragraph Levels}
-These macros can be used to create \indx{paragraph headings}
-of four different levels.
-The \hor, and page number can be written
-to the file \lb{\sa jobname}\rb\lower.3em\hbox{*}
-to be used for a table of contents (the asterisk ``\lower.3em\hbox{*}''
-signifies the {\tt contents} file).
-
-The command {\tt\+ctswrite\hor} will automatically open a file and write the
-\hor\ and the page number to the file. The {\tt\+contents} command
-then uses the \lb{\sa jobname}\rb\lower.3em\hbox{*} file to
-create the \indx{table of contents} (refer to the {\tt\+contents} command
-description in this section).
-
-\cmd{\indx{level}\lb\sa integer between 1 and 4\rb\[\hor\]}
-This is the command used to print a paragraph heading. Whatever
-format is specified using the commands listed below ({\tt \+firstlevelhead,
-\+secondlevelhead}, $etc.$) will be used. For example, the command used to set
-the paragraph heading of this section looked like this:
-
-\centerline{\tt \+level3\[Paragraph Levels\]}
-
-The {\tt \+level} command will automatically update the {\tt\bs levelno}
-to print the paragraph head.
-
-\need.5in\bigskip\relax{{\tentt \+firstlevelhead}}\[\hor\]\lbreak
-\relax{{\tentt \+secondlevelhead}}\[\hor\]\lbreak
-\relax{{\tentt \+thirdlevelhead}}\[\hor\]\lbreak
-\relax{{\tentt \+fourthlevelhead}}\[\hor\]\lbreak
-These commands specify the tokens that are inserted to format
-each of the various head levels. They should be used when the
-default conditions of HP \TeX , as described below,
- are not satisfactory. A control sequence {\tt \bs title}
-is defined to be the \hor\ from the corresponding {\tt \bs level}
-command. For example, the command:
-\start{verbatim}\tt{\hfuzz=31pt
- \+secondlevelhead\[\+need.75in\+bigskip\+leftline\[\+fourteenbf%
- \+levelno\+enspace\+title\]\+medskip%
- \+ctswrite\[\+hskip15pt\+tenrm\+title\]\]}
- \finish{verbatim}
-\vskip3pt\noindent
- would cause all second level paragraph heads to be printed on
-a new page if less than .75 inch remains on the current page.
-The title will be left justified in fourteen point boldface
-type. The level number is followed by an ``enspace.''
- ``Bigskip'' \indx{glue} is inserted before the title with a ``medskip''
-after. The \indx{{\tentt\+ctswrite}} command specifies how the
-level heading will be written in the table of contents, as
-described below.
-
-Whenever you define a {\tt \bs firstlevelhead, \bs secondlevelhead}, $etc.$,
-command to specify the formatting of paragraph headings, you must also
-specify how it will be written in the table of contents (if
-you plan to create one). The command for doing this is
-{\tt \bs ctswrite}. For example, the fourth level head was
-redefined from the HP \TeX\ defaults in this document, and the
-contents writing command was used as follows:\lbreak
-\centerline{\tt \bs ctswrite\[\bs hskip45pt\bs ninerm\bs title\]}
-This causes all fourth level headings in the table of contents
-to be inset 45~points and be written in nine--point roman type.
-
-The default HP \TeX\ paragraph level headings
-are formatted as follows: {\tt \bs level1} begins on a new page,
-prints the title in 14 point bold face type and down 1.5 inches
-from the top of the page. {\tt \bs level2}
- requires that at least .75 inch remain on the
-page. If so, the title is printed with some vertical space above it,
-otherwise, it is set on the top of the next page. In any case, it is printed
-in 12 point boldface type. {\tt \bs level3} and
-{\tt \bs level4} are similar, but
-require less space to remain on the page and print the title in 10
-point bold face and 10 point roman respectively.
-
-The ``levelhead'' macros are {\bo local} to
-their \indx{block structure}. This provides a simple means
-to return to the HP \TeX\ default levelhead
-style. All you would need to do is enclose the command
-and any text you want affected within braces. After the
-closing brace, \TeX\ will return to the default format. Note
-that this should only be attempted for {\bo shorter} blocks.
-Creating large blocks of several pages in length can cause
-\TeX\ to run out of memory.
-
-
-\start{note}\centerline{-- NOTE --}
-If you need to change the font style or size within a level
-heading, you must specify the {\bo entire} font name,
-(for example: {\tt \bs tentt}$\ldots$ not {\tt \bs tt}).
-\finish{note}
-\cmd{\indx{levelno}}
-This macro can be used whenever the author desires the number
-of the heading to appear in the document. The number of the
-various levels of headings appear, separated by periods.
-For example, typing {\tt Section \bs levelno} might result
-in: Section 1.2.7.1 if this was the first fourth-level heading
-of the seventh third-level section of the second$\ldots$ $etc.$
-Levels lower than the last modified level do not appear in
-{\tt\bs levelno}.
-
-\def\delim{.}
-\cmd{\indx{setlevelno}\[\int\delim\int$\ldots$\int\]}
-This macro can be used for presetting the one through
-four heading numbers. If you use
-this command before a {\tt\+level} command, then the
-counter will increment to the next number when the
-{\tt\+level} command is encountered. Therefore, you
-should preset to one number below the desired level.
- You cannot preset the level 2 counter without
- specifying the level 1, or the level 3 without level 1 and 2
- and so on. (For example, you cannot specify {\tt\+setlevelno\[1.~.~.4\]},
- you must specify {\tt \[1.\int .\int .4\]}.)
-
-\cmd{\indx{contents}}
-This macro forces a page eject and produces a \indx{table of contents}
-on the following pages as dictated by the previous heading macros.
-No vertical \indx{glue} is inserted, so you may want to use a {\tt \bs vfil}
-command immediately before {\tt \bs contents}.
-
-\need.5in\bigskip\relax{{\tentt \+topofcontents}}\[\ver\]\lbreak
- \relax{{\tentt \+botofcontents}}\[\ver\]\lbreak
-These macros specify a list to be placed above and below the table of
-contents. The \ver\ may include logos, rules, $etc.$ The table of contents
-is quite rigid, so a {\tt\bs vfill} is appropriate in at least one \ver.
-Defaults in HP \TeX\ will format the table of contents as they appear in the
-beginning of this manual (with the exception of the headings).
-\start{note}\need1in
-\centerline{-- NOTE --}
-{\tt\+topofcontents} and {\tt\+botofcontents} must
-{\bo both} be specified {\bo before} the
-{\tt\+contents} command is used. (That is, you cannot
-specify {\tt\+botofcontents} after {\tt\+contents},
-even though this seems logical.)
-\finish{note}
-\level2{Multiple Columns}
-
-The following macros control the number of columns on the page.
-Multiple column and single column text can be mixed on a page by
-using the following commands.
-
-\cmd{\indx{columnspace}=\dim}
-This command specifies the amount of space between columns on a page.
-This dimension should be assigned before entering multicolumn mode and
-should remain unchanged for the duration thereof. The default
-column space in HP \TeX\ is 0.5 inch.
-
-\need.5in\bigskip\relax{{\tentt \+start\[twocolumns\]}}\lbreak
- \relax{{\tentt \+start\[threecolumns\]}}\lbreak
- \relax{{\tentt \+finish\[twocolumns\]}}\lbreak
- \relax{{\tentt \+finish\[threecolumns\]}}\lbreak
-These four commands cause the text to be formatted into multiple columns.
-If a {\tt\bs balance},
- {\tt\bs newpage}, {\tt\bs evenpage} or {\tt\bs oddpage} macro is
-encountered while in multicolumn mode, the columns are balanced
-on the page prior to the page eject. Exit from multicolumn mode
-causes the columns to be balanced as well. Unbalanced columns may
-be obtained by using {\tt\bs vfill} {\tt\bs eject} while in multicolumn mode.
-Balancing forces the top lines of each column to be lined up. The
-bottom lines are lined up as well unless {\tt\bs raggedbottom} has been
-specified. Discardable items (such as glue, penalties, $etc.$)
-immediately following these commands will be ignored. (To prevent
-this, you may use {\tt\+null} immediately
-after {\tt\+finish\[$n$columns\]}.)
-
-\cmd{\indx{balance}}
-This command causes the columns to become balanced. Discardable
-items (such as \indx{glue}, penalties, $etc.$) immediately following these
-commands will be ignored. (To prevent
-this, you may use {\tt\+null} immediately
-after {\tt\+finish\[$n$columns\]}.)
-
-
-\start{note}
-\centerline{-- NOTE --}
-When using multiple columns, you may find it helpful to use the
-plain \TeX\ commands {\tt\+tolerance} and
-{\tt\+hbadness} (to increase the stretch and
-shrinkability of interword \indx{glue} and decrease complaints
-regarding ``underfull hboxes''). See {\tenit The
-\TeX book} for more information.
-\finish{note}
-
-\level2{Tables}
-The following macros are useful for setting \indx{tables}. These
-macros are different from the plain \TeX\ {\tt\bs halign} and
-{\tt\bs valign} commands in that
-they format one row at a time. The table can be justified as a whole
-either left, right or centered. As long as the number of columns
-in each entry remains constant, the entire table appears justified.
-(Interesting figures, such as pyramids, hopscotch boards, $etc.$ can
-be produced by changing the format and the number of
-columns in each entry.)
-Each column of the table has its own user specified width.
-Between each column
-is a vertical line (which can be easily made invisible).
-This vertical rule takes no space from any column so the rule
-width may be varied without altering the column dimensions.
-An entry may also be designed to span two or three columns.
-Horizontal bars are
-treated exactly the same as data entries. The macro \indx{{\tentt\bs tbar}}
-can be used to produce such a bar.
-
-\cmd{\indx{tableline}=\dim}
-This parameter specifies the dimension of bars and rules in
-all subsequent entries. This parameter should remain unchanged
-throughout the entire table. Default value is 0.01332 inch.\super{7}
-\start{note}
-\centerline{-- NOTE --}
-There may be some occasion when printing a table that you
-get the error message,\lbreak
-~~~~``{\tt Printer error: \lbreak
-~~~~**Could not process all the data, data lost.}''\lbreak
-The printer uses a variety of different length line segments to
-``build'' a line. If the {\tt tableline} specification you have
-chosen requires too many individual segments to make up the exact
-specification, it may cause this error.
-There are a few remedies available, as follows:
-
----If you are using the default magnification (1.0), then
-try using the default {\tt tableline} dimension (just leave out
-the {\tt\+tableline} command.
-
----If you are using a file magnification value other than 1.0, then alter
-your {\tt\+tableline} specification so that its value, when converted
-to dots (multiply length in inches $\times\ 300$), is a power of 2 ($i.e.$ 1, 2,
-8, 16, 32 or a multiple of any of these except 1).
-\finish{note}
-
-\cmd{\indx{tablespace}=\dim}
-This parameter specifies the minimum amount of space to be placed
-between the vertical rules and data entries in the table. Default in
-HP \TeX\ is 5 points.
-
-\cmd{\indx{tableformat}\[\tspec|\colspec\dim|$\ldots$|\colspec\dim\]}
-This command specifies the table format. Note that a \indx{vertical bar}
-(\indx{{\tentt |}}) is required as a separator
-between specifications, but not at the beginning or end of the
-list (different than {\tt \+tablerow} or {\tt \+tablebar}).
-
-\tspec\ can be any of {\tt\bs leftline}, {\tt\bs rightline},
- or {\tt\bs centerline}. \colspec\ can be any of
-{\tt\bs leftline}, {\tt\bs rightline}, {\tt\bs centerline} or
-{\tt\bs paragraph}. Other options are
-allowed if you make them yourself; for example, if you type:
-\par\vskip3pt
-\centerline{\tt\bs def\bs mything\#1\[\bs line\[\bs hskip 1in \#1\bs hss\]\]}
-\par\vskip3pt
-\noindent then {\tt\bs mything} would be a valid \tspec\ option that
-would print the table 1 inch from the left margin.
-The \colspec\ is always a single token ({\tt\bs leftline}, {\tt\bs rightline},
-{\tt\bs centerline} or {\tt\bs paragraph}), and is
-followed by a dimension. The token specifies the standard
-justification of the column ({\tt\bs paragraph} must be used if the
-column is to contain paragraphs), and the dimension specifies the
-absolute width of the column. Again, if you are not satisfied with the
-selection you can make your own---the rules are that the macro consume
-one token (containing the text) and produce a box of width {\tt\bs hsize}.
-%\need2in
-\start{note}
-\centerline{-- NOTE --}
-If the {\tt\bs paragraph} column specification is used, {\tt \+parskip}
-must be 0 points (this is the default). Otherwise, the paragraph entry
-will be raised or lowered by the current {\tt \+parskip} amount and the
-table will be out of alignment. If you are using {\tt\+noindentstyle}
-and have not reset {\tt\+parskip}, then inserting an {\tt\+indentstyle}
-command just prior to the table will return to the proper (0 points) parskip.
-\finish{note}
-
-\need.5in\bigskip
-\relax{{\tentt \+tablerow}}\[{\tt |}\col{\tt |}\col$\ldots${\tt |}
- \col{\tt |}\]\lbreak
-\relax{{\tentt \+tablebar}}\[{\tt |}\col{\tt |}\col$\ldots${\tt |}
- \col{\tt |}\]\lbreak
-These commands are used to build tables. {\tt\bs tablerow} should
-be used if the \col\ contains text, while {\tt\bs tablebar} should
-be used for bars or other non-text entries. Horizontal bars are
-obtained by using either {\tt\bs vrule height} \dim , {\tt width} \dim\
- or {\tt\bs tbar}
-as a \col\ ({\tt\bs tbar} uses {\tt\bs tableline} as the rule height).
-The following syntax holds true for both macros:\dotteditems
-
-\itm A \indx{vertical bar} (\indx{{\tentt |}}) or a \indx{tilde} (\~{}) must be
-beginning and end of each column, including the first and last entry
-(differs from {\tt \+tableformat} syntax).
-\itm The \indx{vertical bar}s ({\tt |}) may be replaced by tildes (\~{})
-if a visible vertical bar in that position is not desired.
-
-\itm If the first thing in a \col\ happens to be the control sequence
-\indx{{\tentt \bs span}}\[\int\]{\tt \bs tbar}, then the number
-of columns specified
-as \int\ are spanned by the entry (in this case a horizontal bar). The
-natural justification for the spanned entry will be that of the
-leftmost column spanned. (Note that {\tt span}\[\int\] is
-{\bo not} followed by a blank space as this can cause difficulties.)
-%\need1.25in
-\start{note}
-\centerline{-- NOTE --}
-While building tables, if a {\tt\+tablebar} or {\tt\+tablerow}
-runs more than one line of text (on the CRT), it is good practice
-to use the percent
-sign (\indx{{\tentt \%}}) at the end of each line. This will tell \TeX\ to
-ignore anything else on that line and prevent
-possible problems with extra spaces being
-misinterpreted by \TeX .
-\finish{note}
-\level2{Fonts}
-Only a few fonts are preloaded in HP \TeX. These macros allow you
-to access a variety of font families, styles, and sizes.
-
-\cmd{\indx{fontdef}\bs\lb{\sa command}\rb=\[\lb{\sa library}\rb,%
- \lb{\sa font name}\rb\]}
-This command equates a command of your choice with a
-font (as used in the library). You can use \lb{\sa library}\rb
-(optional) to
-specify other than the default font library.
-This command differs from \TeX's {\tt\+font} command in that the
-font won't actually be loaded until
-the first request (if any).
-
-\need.5in\bigskip\relax{{\tentt \+fivepoint}}\lbreak
- \relax{{\tentt \+sixpoint}}\lbreak
- \relax{{\tentt \+sevenpoint}}\lbreak
- \relax{{\tentt \+eightpoint}}\lbreak
- \relax{{\tentt \+ninepoint}}\lbreak
- \relax{{\tentt \+tenpoint}}\lbreak
- \relax{{\tentt \+tenpoint}}\lbreak
- \relax{{\tentt \+fourteenpoint}}\lbreak
- \relax{{\tentt \+eighteenpoint}}\lbreak
- \relax{{\tentt \+twentyfourpoint}}\lbreak
-These commands select the font point size from five to twentyfour. (In
-{\bo Math Mode}, these commands only apply to the default
-font within a font family. If you are using a current family
-other than {\tt\+fam0}, you must make the appropriate
-font assignments
-(see Appendix A, ``Changing Fonts in HP \TeX '').
-
-%\mcmd{{cm}}\lbreak
- %tr\lbreak
- %gv}
-%These commands select Computer Modern, times roman
-%and geneva font families respectively.
-\need.5in\bigskip\relax{{\tentt \+rm}}\lbreak
- \relax{{\tentt \+it}}\lbreak
- \relax{{\tentt \+bf}}\lbreak
- \relax{{\tentt \+sl}}\lbreak
- \relax{{\tentt \+sa}}\lbreak
- \relax{{\tentt \+tt}}\lbreak
-These commands select \indx{roman} style, \indx{italic}, \indx{bold face},
-\indx{slanted},
-\indx{sans serif}, and \indx{typewriter} style.
-
-If the selected font is undefined, the font style is changed
-to roman. If that new font is still undefined, the size is
-changed to ten points. Computer Modern ten point
-roman will always be defined in HP \TeX.
-
-\level2{Miscellaneous Macros}
-
-%\cmd{\indx{indx\[\hor\]}
-%This command sets the \hor. The \hor\ along with the current page
-%number are then written to the file {\job.inx} for use as an index.
-%
-\cmd{\indx{note}\[\hor\]}
-This macro puts a footnote at the bottom of the current page
-and inserts a superscript footnote number at the location
-of the command and the footnote.
-Footnote numbers are allocated starting with~1 and can be
-reset by the use of {\tt\bs resetnotes}. The \hor\ is the footnote
-text.
-
-
-\cmd{\indx{need}\dim}
-The result of this macro is that if the page breaking algorithm
-of \TeX\ determines that the current position would optimally
-fall within \dim\ of the bottom of the page, the page is broken
-leaving some empty space at the bottom.
-\need1in
-\start{note}
-\centerline{-- NOTE --}
-Since the {\tt \bs need} command uses a negative penalty
-to {\bo encourage} (not {\bo force}) \TeX\ to break
-the page, it will
-not always have the effect you might anticipate. This is especially
-true if the command is encountered near
-the top of the current page and the remaining text will not
-adequately fill the current page.
-\finish{note}
-\cmd{\indx{super}\[\hor\]}
-The argument is printed as a superscript.
-
-\cmd{\indx{sub}\[\hor\]}
-The argument is printed as a subscript.
-
-\cmd{\indx{lbreak}}
-This macro forces a line break within a paragraph. It inserts ``hfil''
-\indx{glue} before the break, so the line will {\bo not} be right
-justified. If you want right justification, use plain \TeX 's
-{\tt \bs break} command.
-
-\cmd{\indx{uline}\[\hor\]}
-This macro causes the argument to be underlined.
-
-\cmd{\indx{mon}}
-This command prints the current month name. For
-example, if the current month were August, {\tt\bs mon} would
-print the letters ``August'' in the current font.
-
-\cmd{\indx{date}}
-This command prints the current date in the format Month Date, Year.
-For example, if today's date were 12 December 1984, {\tt\bs date}
-would print the characters ``December 12, 1984'' in the current font.
-
-\cmd{\indx{hour}}
-This command prints the current time of day (for example -- 4:07 PM)
-
-\level2{Block Structure}
-Certain local document styles are considered to belong to a ``block.''
-(\indx{Block structure}, as used here, simply refers to a portion of a
-file that has some common formatting instructions applied
-to it.)\note{\tenpoint The concept of {\tenbo \indx{grouping}}, explained
-in this manual and in {\it The \TeX book}, is basically the
-same as the ``\indx{block structure}'' referred to here.}
-
-The current block is defined to be the most recently opened
-block. Pending blocks are blocks that have been opened but
-not closed. The HP \TeX\ macros {\tt\+start} and {\tt\+finish}
-are used to open and close blocks.
-
-Valid \blk s pre-loaded in HP \TeX\ include {\tt indent, note,
- warning, ver\-ba\-tim, twocol\-umns} and {\tt threecolumns},
- all of which have been described in this chapter.
- User defined blocks may be implemented by defining a control
- sequence, {\tt\bs BEGIN\blk} and, optionally, another
- control sequence, {\tt\bs END\blk}.
-
-\cmd{\indx{start}\[\blk\]}
-This command determines if a control sequence {\tt\+BEGIN\blk} has
-been defined. If one exists, a new block is opened and the control
-sequence is invoked. Otherwise, an \indx{error message} is issued and the
-command is ignored.
-
-\cmd{\indx{finish}\[\blk\]}
-This command is used to close the current block and invoke the
-control sequence {\tt\+END\blk} if one has been defined. If \blk\ matches
-the current block name, the current block is closed. If not, an
-appropriate error message is issued and corresponding corrective
-action is taken. If \blk\ is not valid or there are no pending
-blocks, the command is ignored. If \blk\ is valid but does not
-match the current block
-name, {\tt\bs done} commands are inserted until either \blk\ matches
-the current block name or until all pending blocks are closed.
-
-\cmd{\indx{done}}
-This command closes the current block without
-any error checking and invokes the control sequence {\tt\+END\blk} if
-one has been defined. A \TeX\ error message will be issued if
-there are no pending blocks.
-
-Following is an sample usage of the {\tt\+BEGIN} and {\tt\+END}
-commands in creating user-defined blocks:
-
-\def\BEGINexample{\bigskip\centerline{- EXAMPLE -}
- \medskip\leftskip.75in\rightskip.75in}
-\def\ENDexample{\medskip}
-\start{example}
-This example was created by defining the following block:\medskip
-\centerline{\tt \+def\+BEGINexample\[\+bigskip\+centerline\[- EXAMPLE -\]}
-\centerline{\tt ~~~~~~\+medskip\+leftskip.75in\+rightskip.75in\]~~~~~~}
-\medskip
-The block was opened using the command: {\tt\+start\[example\]}. The
-optional control sequence {\tt\+END\blk} was also used, as follows:\medskip
-\centerline{\tt \+def\+ENDexample\[\+medskip\]}\medskip
-The {\tt\+medskip} vertical glue will be inserted after the block is
-closed using the command: {\tt\+finish\[example\]}.
-\finish{example}
-
-
-\level1{\indx{HP 2688A} Control Macros}
-
-These macros are for controlling certain features of the 2688A Laser
-Printer:
-
-\level2{Page Copy Control}
-
-\cmd{\indx{copies}\int}
-This macro assigns the number of copies per page starting with the current
-page. The copies are uncollated; in other words, if {\tt\bs copies5}
-occurred on page 3, the output will have five copies of page 3,
-then five copies of page 4, $etc.$ The control of the number of copies
-is accomplished through one of \TeX's counters. Default is counter
-number~1. Possible integers and their effect are shown below:
-\itm 1 to 32,767 will produce the specified number of copies.
-\itm Greater than 32,767 will produce 32,767 copies.
-\itm 0 will produce 1 copy.
-\itm Less than 0 (negative number) no copies (can be used
-to suppress certain sections of a document, $etc.$)
-\enditems
-The counter
-can be changed using the following macro.
-
-\cmd{\indx{selectcopycounter}\lb {\sa integer from 0 to 9}\rb}
-This is used for changing which counter is used for controlling
-the number of \indx{copies} per page (default is 1). This command generally
-should not be used except by people who are writing their own
-macros.
-
-\need.5in\bigskip\relax{{\tentt \+copieson}}\lbreak
- \relax{{\tentt \+copiesoff}}\lbreak
-If the multiple copies feature is being used in a document, these
-macros can be used to alternate between one copy per page and the
-number of copies assigned by the {\tt\bs copies} macro. The difference between
-{\tt\bs copiesoff} and {\tt\bs copies1}~is that when the former is followed
-with {\tt\bs copieson}, the original number of copies is restored, whereas
-when the latter is followed with {\tt\bs copieson}, there is,
-of course, no effect.
-
-\level2{Logical Page Control}
-
-The Print Server features a concept called ``\indx{logical paging}''
-which is controlled using the following set of macros. A
-logical page is a rectangular addressing space on the sheet of paper
-(referred to as the ``\indx{physical page}''). Logical pages have an
-orientation (\indx{portrait}, \indx{landscape}, \indx{reverse portrait}
-or \indx{reverse lanscape}) and a position on the physical page.
-Through the operator
-interface of PS2688A, you may define a list of logical pages that
-may be written to on any sheet of paper.
-These logical page specifications may also be stored in a PS2688A
-input file to avoid typing in the specifications for each job.
-Using these macros, you
-can address the logical pages with either of two methods:
-either by explicitly specifying a logical page for each page of
-\TeX\ output, or by specifying an ordered list of logical pages
-and letting the system cycle through the list.
-
-\cmd{\indx{lpdef}\[\lb\sa logical page definition\rb\]}
-This command defines a logical page size and orientation. The
-\lb{\sa logical page definition}\rb
-consists of the logical page
-number, followed by the {\bo left},
-then the {\bo top} dimensions (distance from the
- edges of the physical page), and the
-\indx{logical page orientation} (portrait, landscape, rev--portrait or
-rev--landscape). Orientation may be abbreviated {\tt P,L,RP,}and
-{\tt RL,} respectively, and either upper or lower case
-characters will work. The edges of the page that
-would normally be the top and left as viewed from that
-logical page's orientation are
-always considered top and left in this context.
- An example usage follows:\medskip
-\centerline{\tt \bs lpdef \[1, 1.5in, 3in, L\]}\medskip
-This would cause logical page number 1~to be printed
-in {\bo landscape} orientation, with the left edge of the
-print (as viewed from landscape orientation) beginning 1.5~inches
-from the edge of the physical page. The ``top'' (left-hand
-edge along the paper path) will begin 3~inches from the
-edge.
-
-The default values for logical pages in HP \TeX\ are: LEFT=1in,
-TOP=1in.
-
-
-
-
-\start{note}
-\centerline{-- NOTE --}
-The dimension specified as distance from the top edge does not
-take into account the space needed for headings. If running headings
-are to be used, the logical page definition should allow extra
-room for them when specifying ``top'' dimension. (Footings
-are also printed ``in the margin,'' so when specifying
-{\tt vsize} be sure to leave room for them.)
-\finish{note}
-
-\cmd{\indx{lplist}\[\lb\sa logical page list\rb\]}
-This command specifies the logical page list to be used whenever
-logical pages are being used implicitly. Only one such
-specification is allowed within a document, if more than one exist,
-all but the last are ignored. This command initializes
-implied logical paging.
-
- The \lb {\sa logical page list}\rb ~is a list
-of integer numbers from 1~to 32~which have been defined
-using the {\tt \bs lpdef} command. Positive number entries will
-cause a physical page eject prior to initiating the logical
-page entry. Negative numbers require no such physical
-page eject. Each entry number should be separated from
-the next by a comma.
-
-%\need3in
-\medskip The remaining commands control explicit logical paging. If any of
-these commands occur within a page, a page eject is issued and the
-next page to be printed will be dependant upon the particular
-command. If any of these commands occur on the top of a page, the
-prescribed action will be delayed until the next page break
-(be it natural or forced by a {\tt\bs newpage}, {\tt\bs eject}, $etc.$).
-For example, suppose the first page of every chapter in a
-document uses logical page 5, then {\tt\bs ppageto5} {\tt\bs lpresume}
-would eject the current page (assuming it is not empty), issue
-a physical page eject and begin printing on page 5. Later,
-when the page is full, \TeX\ breaks the page and resumes printing
-according to the logical page list.
-
-\cmd{\indx{lpageto}\lb {\sa integer between 1 and 32}\rb}
-This command causes the next page to be printed on the specified
-logical page. No physical page eject is implied.
-
-\cmd{\indx{ppageto}\lb {\sa integer between 1 and 32}\rb }
-This command is similar to {\tt\bs lpageto} but implies a physical
-page eject prior to printing on the specified logical page.
-
-\cmd{\indx{lpresume}}
-This command is used after a {\tt\+ppageto} or {\tt\+lpageto}
-command to resume
-printing on the current page of the logical page list.
-
-\cmd{\indx{lpreset}}
-This command resets the logical page list and prints on the first
-page in the list.
-
-\cmd{\indx{lpexit}}
-This command exits the current loop in the logical page list and
-prints on the next page in the list.
-
-\cmd{\indx{selectlpcounter}\int}
-This is used for changing which counter is used for specifying the
-logical page (default is 2). This macro generally should not be used
-except by people who are writing their own macros.
-\vfill\eject
-
-% THIS BEGINS THE SAMPLE PAGE***
-
-\def\oddheading{\vbox{\hbox to \hsize{\eightrm A Sample Document
- \hfil Page \folio}
- \nointerlineskip\vskip2pt
- \hbox{\vrule width \hsize height .4pt}}}
-\centerfooting{\eightbf THIS DOCUMENT WAS CREATED USING \HPTEX}
-\firstlevelhead{\leftline{\fourteenbf\levelno\enspace%
- \title}%
- \medskip\ctswrite{\hskip15pt\tenrm\title}}
-\numbereditems
-\level1{Formatting a \indx{Sample Document}}
-In this section we will format a simple document
-utilizing many of the HP \TeX\ macros.
-For this example, we will accept all the HP \TeX\ default values for the
-various commands.
-\vskip.5in
-\centerline{\twelvebf A Sample Document}
-
-Isn't that nice? If we wanted to, we could have easily set that off to the
-right like this:\lbreak
-\rightline{\twelvebf A Sample Document}
-
-Now, how about \textbox{a textbox?} Those are
-always fun. Or, if we really want to set something off, we could
-ask \TeX\ to:
-\centerbox{put it inside\cr
- a nice little\cr
- centered box,}
-or, maybe just \boxit{``boxit'' -- like this.}
-
-But say you're really serious about getting someone's attention.
-
-\start{warning}
-\centerline{\bf LOOK!}
-\centerline{You can use the ``Warning'' command, like we did here.}
-\finish{warning}
-
-Now, let's use the extraordinary capabilities of \TeX\ to
-generate a mathematical formula:
-$$\hat{n}_2(s)={1\over \alpha_2}\biggl[ \biggl({\partial C_2\over
- \partial x} \biggr)_{x=0}+{k_1 \hat{n}_1\over D_1} \biggr]$$
-Next, we'll create a table to show the dimensional units available in \TeX :
-\medskip
-\tableformat{\centerline|\centerline 1in|\leftline 1.2in|\centerline 1in|%
- \centerline .05in|\centerline 1in|\leftline 1.2in|\centerline 1in}
-\tablebar{|\span7\tbar|}
-\tablerow{|\TeX\ UNIT|DESCRIPTION|PER INCH||\TeX\ UNIT|DESCRIPTION|PER INCH|}
-\tablebar{|\span7\tbar|}
-\tablerow{|{\tt in}|inch|1||{\tt mm}|millimeter|25.4|}
-\tablerow{|{\tt cm}|centimeter|2.54||{\tt dd}|Didot point|67.54|}
-\tablerow{|{\tt pt}|printer's point|72.27||{\tt bp}|big point|72|}
-\tablerow{|{\tt pc}|pica|6.02|| | | |}
-\tablebar{|\span7\tbar|}
-\medskip
-Itemized lists are very useful:
-\itm For listing things.
-\itm For making a series of points.
-\sitm You can even use subitems.
-\enditems
-Now, look at the next page to see exactly how this sample
-document was formatted.
-\vfil\eject
-
-
-\nofooting
-\centerline{\bf Here's the source file for ``\indx{Sample Document}''}
-\medskip
-\start{verbatim}{\tentt\inset=.6in\start{indent}
-\+noindentstyle
-\+centerfooting\[\+eightbf THIS DOCUMENT WAS CREATED USING \+HPTEX\]
-\+null\+bigskip
-\+centerline\[\+twelvebf A Sample Document\]
-
-Isn't that nice? If we wanted to, we could have easily set that off to the
-rightlike this:\+lbreak
-\+rightline\[\+twelvebf A Sample Document\]
-
-Now, how about \+textbox\[a textbox?\] Those are always
-fun. Or, if we really want to set something off, we could ask \+TeX\+ to:
-\+centerbox\[put it inside\+cr
- a nice little\+cr
- centered box,\]
-or, maybe just \+boxit\[``boxit'' -- like this.\]
-
-But say you're really serious about getting someone's attention.
-
-\+start\[warning\]
-\+centerline\[\+bf LOOK!\]
-\+centerline\[You can use the ``Warning'' command, like we did here.\]
-\+finish\[warning\]
-
-Now, let's use the extraordinary capabilities of \+TeX\+ to
-generate a mathematical formula:
-$$\+hat\[n\]_2(s)=\[1\+over \+alpha_2\] \+biggl[ \+biggl(\[\+partial C_2\+over
- \+partial x\] \+biggr)_\[x=0\] +\[k_1 \+hat\[n\]_1\+over D_1\] \+biggr]$$
-Next, we'll create a table to show the dimensional units available in \+TeX :
-\+medskip
-\+tableformat\[\+centerline|\+centerline 1in|\+leftline 1.2in|%
- \+centerline 1in|\+centerline .05in|%
- \+centerline 1in|\+leftline 1.2in|\+centerline 1in\]
-\+tablebar\[|\+span7\+tbar|\]
-\+tablerow\[|\+TeX\+ UNIT|DESCRIPTION|PER INCH||\+TeX\+ UNIT|DESCRIPTION|PER INC
-\+tablebar\[|\+span7\+tbar|\]
-\+tablerow\[|\[\+tentt in\]|inch|1||\[\+tentt mm\]|millimeter|25.4|\]
-\+tablerow\[|\[\+tentt cm\]|centimeter|2.54||\[\+tentt dd\]|Didot point|67.54|\]
-\+tablerow\[|\[\+tentt pt\]|printer's point|72.27||\[\+tenttbp\]|big point|72|\]
-\+tablerow\[|\[\+tentt pc\]|pica|6.02|| | | |\]
-\+tablebar\[|\+span7\+tbar|\]
-\+medskip
-Itemized lists are very useful:
-\+itm For listing things.
-\+itm For making a series of points.
-\+sitm You can even use subitems.
-\+enditems
-Now, look at the next page to see exactly how this sample document was
-formatted.
-\+vfil\+eject
-\finish{indent}
-}
-\finish{verbatim}
-
-\bye
-
diff --git a/macros/hptex/hptex.doc b/macros/hptex/hptex.doc
deleted file mode 100644
index 4611efaa45..0000000000
--- a/macros/hptex/hptex.doc
+++ /dev/null
@@ -1,751 +0,0 @@
-This is the documentation for HP TeX, version A.00.00, Feb. 14, 1984.
- Copyright 1984 Hewlett-Packard Co.
-
-NOTE 1: Plain is read in as a separate file.
-
-NOTE 2: "@" temporarily becomes a letter so that HP TeX can use the
- internal control sequences of PLAIN, and to avoid conflict between
- the internal control sequences of HP TeX and user names.
-
-NOTE 3: This defines leaders used in the table of contents macros.
-
-<<FONTS>>
-
-NOTE 4: HP TeX has fonts available in sizes from 5 points to 24 points. The
- fonts loaded in Plain are listed as comments to make it easier to
- verify the fonts available.
-
-NOTE 5: In case a font is used in a write or message.
-
-NOTE 6: \fontdef#1#2 defines the control sequence for the font, but the
- font is not loaded until the first time the control sequence is
- actually used. The first parameter is the control sequence to be
- defined; the second is the external font name.
-
-<<MACROS TO SET FSTYLE>>
-
-NOTE 7: These macros set the family and the background style. Then using
- \setfont they set the current font.
-
-<<MACROS TO SET FSIZE>>
-
-NOTE 8: These macros set the background font size, and then use \setfont to
- set the current font. \baselineskip and \strutbox are set to
- values appropriate to the font size. The fonts in families 0, 1,
- and 2 are changed to appropriate sizes. The fonts that are not
- already loaded, are not loaded unless they are needed by an entry
- into either math mode or display mode.
-
-<<MACROS TO SET CURRENT FONT USING FSTYLE AND FSIZE>>
-
-NOTE 9: \tryfont#1 sets \nofont@ to true if the control sequence determined
- by the current background font size and style (#1) has not yet been
- defined. If the control sequence does exist, \nofont@ is set to
- false, and the control sequence is invoked.
-
-NOTE 10: \setfont uses \tryfont to set the current font based on the
- background font size and style. If there is no control sequence
- defined for that font, then \tryfont is used again to check for a
- font with the background size and in roman style. If there is
- still no control sequence defined for that font, the size ten and
- style roman is tried. This will always succeed in HP TeX.
-
- \ffam will be a third factor in determining the current font when
- other font families become available.
-
-<<DEFAULTS>>
-
-NOTE 11: The default values in HP TeX are family0 and font \tenrm with a
- background style of roman, a background size of ten points, and a
- superscript/subscript size of seven points.
-
-<<LINE MACROS>>
-
-NOTE 12: These line setting macros take \leftskip and \rightskip into
- account.
-
-<<MORE MACROS>>
-
-NOTE 13: This replaces Knuth's definition of \narrower. \narrow@ is used in
- the note and warning macros.
-
-NOTE 14: \need is followed by a dimension x. It uses \need@ to determine
- if x space remains on the page, and if not, causes an eject to
- the next page.
-
- \need@ depends on \okbreak which merely encourages a page break
- at that point. Its effect is dependent on its nearness to the
- bottom of the page, and whether the text following the \need
- fits completely on the page or not.
-
-NOTE 15: \for provides a for-loop. Parameter #1 (\fcount@) contains the
- variable name; #2 is the initial value of the variable; #3
- (\fexit@) is the terminating value; #4 (\floop@) contains the
- instructions to be done in the loop. The loop will not execute
- unless the initial value (#2) is less than or equal to the
- terminating value (#3). \next@ is set to \fnext@.
-
-NOTE 16: \fnext@ provides the looping capability for \for. It executes
- \floop@ and then checks to see if \fcount@ has reached the
- terminating value. If it hasn't, then \fcount@ is incremented. If
- the terminating value has been reached, \next@ is set to \relax.
- \next@ is then entered and depending on its current meaning, either
- the loop is repeated via \fnext@, or \relax ends the looping.
-
-
-NOTE 17: \uline#1 makes an \vbox containing #1 with a horizontal rule .23em
- under its baseline, and then creates an \hbox containing the vbox
- lowered by the amount necessary to place the baseline of #1 in line
- with the baseline of the current line of text.
-
-<<START AND FINISH GROUP STRUCTURE>>
-
-NOTE 18: \start#1 and \finish#1 define local nestable blocks. In the
- event of any error, the error message is delayed until corrections
- are complete.
-
-NOTE 19: \start#1 uses \ifinvalid@ to determine if #1 is a valid
- blockname. If it is, a block (group) is begun and \blockname@
- stores #1 as the current block. The control sequence \BEGIN#1 is
- invoked and \Error is called to print out any error messages.
-
-NOTE 20: \finish#1 calls \ifinvalid@ to determine if #1 is a valid
- blockname. If it is valid, \matchup@ is called to close block #1.
- \Error is called to print out any error messages.
-
-NOTE 21: \ifinvalid@#1 tests to see if the control sequence \BEGIN#1
- has been defined. If it has not been defined, it is ignored
- and \errset is called to store an error message.
-
-NOTE 22: \matchup@#1 closes blocks as follows: if a \finish is used when no
- block currently exists, it is ignored. if a finish does not match
- the current blockname, blocks are closed until either a match is
- found or all blocks are closed. The parameter is the parameter to
- \finish.
-
-NOTE 23: \done closes the current block.
-
-<<GENERAL ERROR HANDLING>>
-
-NOTE 24: These macros are used for general purpose error handling.
- \errfalse clears the error status. \errset assumes an argument of
- an error message; any use of \errset sets the error status and
- produces an error message when \Error is encountered.
-
-<<DATE AND TIME MACROS>>
-
-NOTE 25: \mon sets the current month with the current font.
-
-NOTE 26: \date sets the current date: <month> <day>, <year>.
-
-NOTE 27: \hour sets the current time of day in 12 hour format:
- <hour>:<minutes> <AM or PM>.
-
-<<INDENTSTYLE>>
-
-NOTE 28: The switch \ifindent acts as a flag to indicate when \indentstyle
- is being used. This is used in \indentstyle, \noindentstyle, and
- \indentspace.
-
-NOTE 29: \indentstyle sets \parindent to \indentsize. If \indentstyle is
- already in effect, \parskip is not changed. If \indentstyle is
- not already in effect, \parskip is decreased by 5 points.
-
-NOTE 30: \noindentstyle sets \parindent to zero points. If \indentstyle is
- in effect, \parskip is increased by 5 points, otherwise it is not
- changed.
-
-NOTE 31: \indentspace will update \parindent only if \indentstyle is in
- effect.
-
-<<RAGGED MARGIN>
-
-NOTE 32: \fixmargin@ preserves the original \rightskip.
-
-NOTE 33: \justify undoes the effects of \raggedright by returning to the
- original \rightskip, and resetting the interword and intersentence
- space to the default values.
-
-NOTE 34: \raggedright saves the original \rightskip with \fixmargin@, adds
- some stretch to \rightskip, and if \tt is not in effect, fixes the
- interword and intersentence spaces.
-
-NOTE 35: \tt@ is used in \raggedright in the \ifx comparison. It is
- necessary if the comparison is to succeed.
-
-<<ITEM AND SUBITEM>>
-
-NOTE 36: \itemset@ takes three parameters: #1 specifies the left indentation
- (in multiples of \inset), #2 should be the sum of the left and
- right indentation (in multiples of \inset) , and #3 is the tag to be
- hung to the left of the item. The line size is in \dimen@. \parshape
- is used to build the paragraph. The tag (#3) is hung to the left of
- the paragraph.
-
-NOTE 37: \itemlist#1 is syntactically the same as \item, however \itemlist
- preserves \leftskip and \rightskip, and both the left and
- right margins are indented by the value of \inset. The parameter
- contains the tag for the item. Each time \itemlist is used,
- the subitem tag is reset, and the item tag is incremented if
- appropriate.
-
-NOTE 38: \subitem#1 is syntactically the same as \itemitem, however left and
- rightskip are preserved, and both the left and right margins are
- indented by twice the value of \inset. The parameter contains the
- tag for the subitem. Each time \subitem is used, the subitem tag
- is incremented, if appropriate.
-
-NOTE 39: \itempar creates a paragraph identical to that created by \itemlist
- except it will have an empty tag. It can be used for the second
- paragraph of an item.
-
-NOTE 40: \subitempar creates a paragraph like that created by \subitem, but
- with an empty tag.
-
-
-<<ITEM TAG AND SUBITEM TAG MACROS>>
-
-NOTE 41: The definition of a tag must do three things:
- 1. define a control sequence \reset[sub]items which will be
- used to restart tag allocation between lists;
- 2. restart tag allocation;
- 3. define a control sequence \[sub]itemtag to produce a tag.
-
- \icount@ (\scount@) holds the value used to determine the current
- item (subitem) tag for numbered and lettered tags.
-
- \idigit@ (\sdigit@) is used with lettered tags to keep track of how
- many times the item (subitem) tags have gone through the alphabet
- without being reset.
-
-NOTE 42: \itemn@#1 is used in the allocation of numbered tags. The parameter
- is either \icount@ or \scount@.
-
-NOTE 43: \itemr@#1 is used in the allocation of lower case Roman tags. The
- parameter is either \icount@ or \scount@.
-
-NOTE 44: \itemR@#1 is used in the allocation of upper case Roman tags.
- The parameter is either \icount@ or \scount@.
-
-NOTE 45: \iteml@#1#2 is used in the allocation of lettered tags. If the
- end of the alphabet is reached, it begins again with "aa" or
- "AA". The first parameter is either \icount@ or \scount@. The
- second parameter is either \idigit@ or \sdigit@.
-
-NOTE 46: \item@#1,#2,#3 takes three parameters: #1 is the initial value of
- \icount@ (item counter), #2 is the value of \idigit@ which is
- used to print out the appropriate number of letters when using
- letters as tags, and #3 is the definition of the \itemtag. It
- defines \resetitems to be the initialization of \icount@ and
- \idigit@.
-
-NOTE 47: \itm does not take a parameter. It uses the current \itemtag
- as the parameter to \itemlist. If the \itemtag is numbers or
- letters, a period is appended to the tag.
-
-NOTE 48: \subitem@ is similar to \item@.
-
-NOTE 49: \sitm is the subitem macro equivalent to \itm for item.
-
-NOTE 50: The defaults are \numbereditems and \letteredsubitems.The
- execution of these macros defines \itemtag, \subitemtag,
- \resetitems, and \resetsubitems.
-
-<<NOTE AND WARNING MACROS>>
-
-NOTE 51: \BEGINnote defines the blockname "note" and sets the indentation
- at twice the left and right skip amounts.
-
-NOTE 52: \BEGINwarning defines the blockname "warning," sets the indentation
- to twice the left and rightskip amounts, and places a horizontal
- rule above the text. \ENDwarning places a horizontal rule below
- the text.
-
-NOTE 53: \marginrule#1 defines an \hrule limited by \leftskip and
- \rightskip. Its only parameter specifies the height of the rule.
-
-<<VERBATIM MODE>>
-
-NOTE 54: In verbatim mode, all characters except (\), ({) and (}) are treated
- verbatim. Characters that cannot be extracted from the current font
- are taken from the math font and given a fixed space equal to the
- space of the current font.
-
-
-<<LUMPLINE AND LUMPSPACE MACROS>>
-
-NOTE 55: These macros make the verbatim mode use less memory. Multiple lines
- and spaces are lumped together to make one large glob of glue
- rather than many small globs.
-
- The carriage return is made into an active character, and given
- the meaning of \lumpline@. \lumpline@ accumulates sequential
- carriage returns into one lump of vertical glue in \skip@.
-
- '\ ' is made into an active character, and given the meaning of
- \lumpspace@. \lumpspace@ accumulates sequential spaces into
- one lump of horizontal glue in \skip@.
-
-<<PAGE CONTROL MACROS>>
-
-NOTE 56: \newpage first balances multi-column format which transfers the
- contents of \box 255 to \contrib@, so it always looks like the
- page is empty immediately afterwards. The box \contrb@ is checked
- to see if the page is really empty.
-
- If \newpage occurs at the bottom of a full page, the \null\vfill
- remains in recent contributions and causes an extra page to be
- ejected. The workaround is to insert an \eject in the document
- just before the \newpage (or the macro containing the \newpage).
-
- The same problem occurs with \evenpage and \oddpage, and
- the same workaround is effective.
-
-<<HEADING AND FOOTING MACROS>>
-
-NOTE 57: Headlines and footlines are constructed as follows:
-
- (1) under normal conditions the centered heading or footing is
- centered, but in the event that one (or more) of the headings or
- footings are too wide, space is distributed if possible so there is
- no overlap. The macro triplehead@ does this.
-
- (2) inside and outside headings and footings have priority over
- left and right headings and footings. \buildline takes care of
- this.
-
- Notice that if the tokens in an \hbox have width 0pt, it is
- assumed they are empty.
-
- The macros and token registers associated with headings and
- footings should be used near forced page breaks or at the begining
- of the document. TeX scans ahead when building a page, so the use
- of these macros could affect the previous page.
-
-NOTE 58: \buildline decides which tokens will be on the left and right of
- the headline or footline that is being constructed. \lft and \rght
- hold the numbers of the boxes containing the tokens to be placed on
- the left and right sides of the line. They are initialized to the
- boxes for \leftheading and \rightheading. If the box containing the
- \insideheading (\box3) is not empty, then for an odd page \lft is
- set to 3, and for an even page \rght is set to 3.
-
- If the box containing the \outsideheading (\box4) is not empty,
- then for an odd page \rght is set to 4, and for an even page \lft
- is set to 4.
-
- \triplehead is called to actually construct the line.
-
-NOTE 59: \triplehead#1#2#3 requires three parameters. #1 is the number of
- the box that is to go to the left, #2 is the box number for the
- center, and #3 is the box number for the right. \skip@ is the glue
- to go between the left and center boxes, and \skip@ii is the glue
- to go between the center and right boxes.
-
- If the width of the left box is greater than the width of the right
- box, \skip@ii is increased by the difference, otherwise, \skip@ is
- increased by the difference.
-
- The line is then built by stringing together the boxes and glue.
-
-NOTE 60: \loadbox#1#2 takes two parameters: #1 is the box number, #2 is the
- token list to be put in the box.
-
-NOTE 61: \headline checks to see if headings are turned on or off. If on,
- it loads the appropriate boxes with the various heading token
- lists and calls \buildline. If off, it adds horizontal glue, and
- if \suspendheading is in effect, updates the \headcount.
-
-NOTE 62: \footline is similar to \headline.
-
-<<BOX MACROS>>
-
-NOTE 63: \boxit#1 takes as its parameter the text to be placed in the box,
- and can be used when a real box is wanted, e.g., \setbox0\boxit{...}.
- \boxit uses \halign to center the lines of text, separated by \cr,
- within the box.
-
- The value of \boxline determines the thickness of the rule around
- the box. The value of \boxspace determines the amount of space
- between the rule and the text.
-
-NOTE 64: \centerbox#1 takes as its parameter the text to be boxed, and then
- uses \centerline to center the box resulting from \boxit#1. The box
- is separated from surrounding text by \abovedisplayskip and
- \belowdisplayskip.
-
-NOTE 65: \textbox#1 takes as its parameter the text to be boxed. It places
- the boxed text in the current line (or begins a new paragraph if
- encountered in vertical mode) with the baseline of the enclosed
- text lined up with the baseline of the line.
-
-<<HP2680A and HP2688A COPY CONTROL MACROS>>
-
-NOTE 66: These commands control the number of copies per page. Owing to the
- synchronization problems associated with TeX, these should only be
- used near forced page ejects or at the begining of a document.
-
- \globalspecial writes the parameter to the postamble of the
- PIF file.
-
- \copycnt contains the number of the register that the PIF server
- will look in to find the number of copies desired.
-
- \oldcopy contains the number of copies desired. The default is
- two, so if \copieson is invoked before the user has used \copies<n>,
- two copies will be generated.
-
-<<HP2680A and HP2688A LOGICAL PAGE CONTROL (LPC) MACROS>>
-
-NOTE 67: \lpcount@ holds the number of the register to be interpreted
- by the PIF driver for explicit logical page control.
-
- \nextlp@ holds the page control number to be put into
- \count\lpcount@.
-
- These macros avoid the synchronization problems of TeX by
- interjecting a page eject at an appropriate time. At the beginning
- of the document and after each \shipout, the "empty@" flag is set
- to true.
-
- If an LPC macro occurs when the "empty@" flag is true, \nextlp@
- is updated, its value is put into \count\lpcount@, and the flag
- is set to false.
-
- If an LPC macro occurs when the "empty@" flag is false, \nextlp@
- is updated, but the value in \count\lpcount@ is not changed. After
- the next shipout, \count\lpcount@ is updated by the output routine.
-
- The codes for \lpreset and \lpexit will, if left alone, only endure
- for one page.
-
-<<TABLE MACROS>>
-
-NOTE 68: The table macros are complex. It is recommended that anyone
- wanting to understand how they work examine the LOG file of
- a small table created with \tracingmacros=1 and \tracingcommands=2.
-
- The table macros use unallocated dimension and token registers to
- store the column specifications. New dimensions or tokens should
- not be allocated between the \tableformat and the last \tablerow or
- \tablebar in a table. If any are allocated the result will be a
- very strange looking table and a TeX error. If too many columns,
- dimensions, tokens or inserts are allocated, an error message is
- given and the registers are used anyway.
-
- A row is processed in sections. \parseline@ takes sections of the
- parameter to \tableformat or \tablerow. Each section is delimited
- by a ~. \parsecol@ takes sub-sections of the section where each sub-
- section is delimited by a |. After a sub-section is processed, the
- next sub-section is fetched until the end of a section is reached.
- The next section is then fetched and processed until the end of the
- original parameter to \tableformat or \tablerow is reached.
-
- \span is temporarily redefined during the execution of either a
- \tablerow or \tablebar macro to allow spanning of multiple columns.
-
- The standard table specifications are \leftline, \rightline,
- \centerline and (for internal columns) \paragraph. You can also
- make your own. There are only two rules:
- (1) your macro will have one parameter (the text)
- (2) your macro will yield a box of width \hsize.
-
-
-NOTE 69: \uptoks@ increments \cntA@, used as a pointer to a token register
- to hold column alignment specifications, and \cntB@, used as a
- pointer to a dimension register used to hold column width specifi-
- cations. If too many token registers are used, an error message is
- printed, and processing continues.
-
-NOTE 70: \bump@ increments \cntC@, which contains the number of columns
- processed in the current \tablerow or \tablebar. If the total number
- of columns specified in the \tableformat has not yet been processed,
- then \cntC@ is incremented, and \uptoks@ is called to increment the
- pointers to the registers that hold the column specifications.
-
- NOTE 71: \tableformat#1 has as its parameter the description of the
- table format. The alignment for the entire table is given first,
- followed by the formats for each column. A column format consists
- of its alignment followed by its width. A | separates the table
- format from the column formats, and each column format from the
- next.
-
- \tableformat first calls \tablelet with the three parameters
- \just@, \just@, and \relax.
-
- Next, \parse@ (which has been assigned the meaning of \parseline@)
- is called and sent one parameter, which is delimited by ~. This
- effectively sends the contents of the parameter of \tableformat up
- to the first ~ to \parse@ (\parseline@). The \done@ is an undefined
- control sequence used to mark the end of the specifications in the
- \tableformat.
-
-NOTE 72: \tablerow#1 is similar to \tableformat. Its parameter is a list of
- the contents for each column of the row. Each column must start
- and terminate with either a | for a visible bar, or a ~ for an
- invisible bar.
-
- The parameters sent to \tablelet are: \bbar@, \wbar@, and \endrow@.
-
-NOTE 73: \tablebar#1 sets horizontal rules across the table. It resets
- \topstrut, \botstrut, and \tablespace, and then passes its
- parameter to \tablerow. Its parameter is a list of column
- contents, with each column indicated as for \tablerow. A
- column can be empty, contain a \vrule, or contain \tbar.
-
-NOTE 74: \tablelet requires three parameters. The first is assigned to the
- control sequence \b@, the second to \w@, and the third to \f@.
- \CntA@, \CntB@, and \CntC@ are initialized. \parse@ is assigned
- the meaning of \parseline@. If currently in horizontal mode,
- vertical mode is entered; if in vertical mode, interline glue is
- inhibited.
-
-NOTE 75: \just@#1 is never invoked directly. The control sequences \b@
- and \w@ are \let to be \just@ in \tablelet when \tablelet is
- called from \tableformat. \just@ is invoked by \parsecol@ the
- first time \parsecol@ is entered. The parameter to \just@ is the
- alignment specification for the table.
-
- \just@ assigns the control sequences \b@ and \w@ the meaning of
- \tform@, and initializes \maxcol@ to 0. The control sequence
- \tablejust@ is assigned the table alignment specification (#1).
-
-NOTE 76: \tform@#1 passes its parameter, which is the set of specifications
- for a column, on to \tform@@ with a ~ deliminating the parameter.
-
-NOTE 77: \tform@@#1#2~ updates the pointers to the registers to be used
- for storing column specifications, puts the column alignment (#1)
- into the current token register, and the column width (#2) into the
- current dimension register. Then \maxcol@ is incremented to count
- the column just completed.
-
-NOTE 78: \bbar@#1 begins a row that starts with a visible vrule. The
- parameter is empty.
-
-NOTE 79: \wbar@#1 begins a row that starts with an invisible vrule. The
- parameter is empty.
-
-NOTE 80: \beginrow@#1 reassigns \b@ and \w@ the meanings of \vbar@ and
- \ibar@ respectively. The parameter is empty.
-
- Box0, an \hbox that will contain the row, is begun with a \bgroup,
- and the assignments that should hold within the box are made.
-
-NOTE 81: \endrow@ finishes Box 0 and aligns the resulting box according to
- \tablejust@.
-
-NOTE 82: \vbar@#1 adds a column entry that terminates with a visible \vrule.
- The parameter contains the column entry.
-
-NOTE 83: \ibar@#1 adds a column entry that terminates with an invisible
- \rule. The parameter contains the column entry.
-
-NOTE 84: \cs@#1 determines if a column entry (#1) spans multiple columns,
- and invokes \span@ with the appropriate parameters.
-
-NOTE 85: \parseline@#1~ is called by \tableformat and \tablerow (and
- indirectly by \tablebar). Its parameter is the part (section) of
- the parameter to the calling macro terminated by the first
- occurrence of ~ . If the parameter is \done@, then processing is
- complete, and \parse@ is assigned the current meaning of \f@, which
- is \relax if \parseline@ was called from \tableformat, or \endrow@
- if \parseline@ was called from \tablerow.
-
- If processing is not done, \p@ss is assigned the meaning of
- \parsecol@, and then \p@ss is invoked and its parameter is
- that part (sub-section) of the parameter to \parseline@ up to the
- first occurrence of |. \done@ is an end of processing indicator.
- \parse@ is invoked and, depending on its current assigned meaning,
- either terminates processing of this \tableformat or \tablerow
- parameter, or takes the next section of the parameter of the
- \tableformat or \tablerow terminated by ~ as its parameter.
-
-NOTE 86: \parsecol@#1 is called by \parseline@ and has as its parameter that
- part (sub-section) of the parameter to \parseline@ up to the next
- occurrence of |. It defines the macro \parsemode@: if we are on
- the last column, then the currently assigned value of \w@ (\tform@
- or \ibar@, depending on whether a \tableformat or a \tablerow is
- being processed) is invoked, and \p@ss becomes \lastp@ss; if we are
- not on the last column, then \b@ (which is either \tform@ or
- \vbar@) is invoked; in either case, \p@ss is called again and will
- either terminate processing or get the next section to be
- processed.
-
-
-NOTE 87: \span@#1#2 sets a box spanning the required number of columns and
- containing the text in the parameter. \hsize and \z@ are set to
- the width and alignment specifications respectively of the first
- column spanned. The pointers are then incremented once for each
- column spanned, and the width of each column plus the width of a
- vertical bar is added to the \hsize for each column spanned. The
- first parameter is the integer following \span, and the second is
- the remainder of the column contents.
-
-<<SECTION AND HEADING MACROS>>
-
-NOTE 88: These macros are used for head or section level control.
-
- \basehead is the zero pointer value for the four pointers
- to the head counters. The head counters count the number of
- current headings at each heading level.
-
- \headlevel keeps track of the level of the current heading.
-
- To add a fifth level, do the following:
- (1) Change the "\advance\count10by4" command to
- "\advance\count10by5". This allocates
- the counters for the level number.
-
- (2) Change "\ifnum\hdlevel<4 " to "\ifnum\hdlevel<5
- in the \sethead@ macro.
-
- (3) Allocate a new token register, \fifthlevelhead, and
- define a corresponding \headE@
- (e.g., \def\headE@{\head5\the\fifthlevelhead}).
-
- (4) Modify the \level macro so that it includes \headE@.
-
- (5) Load \fifthlevelhead with some appropriate tokens.
-
-NOTE 89: \setlevelno#1 has one parameter: the levelnumber to be established.
- This can be up to 4 numbers, separated by periods. The level number
- and the pointer to the head counters are initialized.
-
- .-1. is appended to the parameter to act as an end of parameter
- signal.
-
-NOTE 90: \sethead@#1. has as its parameter one of the numbers in the
- parameter to \setlevelno. The first number it receives is put into
- the head counter for the first level. The second number goes into
- the head counter for the second level, etc. Processing is
- completed when -1 is received as a parameter, or when 4 levels have
- been done.
-
-NOTE 91: \head#1 is called indirectly by \level via \headA@, or \headB@,
- etc. It oversees adjusting the \levelno according to the level of
- the new heading. Its parameter is the level of the new
- heading.
-
- If the new heading is on a level inferior to the current heading,
- \uplevel@ is called, otherwise \headlevel is set to the level of
- the new heading and that head counter for that level is incremented.
-
- \head@ is called to update \levelno.
-
-NOTE 92: \uplevel@#1 does what is necessary to add a level that has a higher
- number than the current level. #1 is the level of the new heading.
-
-NOTE 93: \head@ defines \levelno.
-
-NOTE 94: These allocate token registers for each level description, and
- define a corresponding \headA@ (or \headB@ etc.) that calls \head
- with the appropriate parameter, and accesses the tokens for that
- headlevel.
-
-NOTE 95: \level#1#2 takes two parameters: #1 is the level of the heading,
- and #2 becomes the definition of \title. A case statement is
- used to invoke the appropriate choice of \headA@, \headB@, etc.
-
-<<CONTENTS FILE MACROS>>
-
-NOTE 96: "\content@" can now be written with \write
-
-NOTE 97: \ctswrite#1 writes its parameter into a file along with the current
- page number. If the file does not already exist, one is created.
- When the file is read at a later time, @ will not be a character.
- \_ is redefined so that it can be read from the contents file.
- \content@ is defined with @ no longer a character so that it can be
- read from the contents file.
-
-
-NOTE 98: \contents adds the table of contents if a contents file was
- created.
-
-<<FOOTNOTES AND INSERTIONS>>
-
-NOTE 99: The \vfootnote#1 of PLAIN has been modified to accommodate
- multi-column format by the insertion of \realhsize to restore the
- original \hsize and by adding 1\baselineskip to remove any glue
- from \baselineskip.
-
-NOTE 100: \note generates footnotes with sequential numbers.
-
-NOTE 101: \midinsert has been changed from the definition in PLAIN by
- the insertion of \p@gefalse.
-
-NOTE 102: \@ins has been changed from the definition in PLAIN by adding a
- return to the normal \hsize and \vsize.
-
-NOTE 103: The \endinsert of PLAIN has been modified. The "room left on page"
- calculation has been expanded to handle multi-column format: if
- there is room, the columns are balanced and the insertion is
- appended. The penalty (first item in the \insert) is set to -100 if
- the insertion cannot fit on the current page, this keeps the page
- from stretching if the insertion can't fit on the page.
-
-<<COLUMN MACROS>>
-
-NOTE 104: The column macros and output routines are interrelated. Every time
- the number of columns changes, a false output routine is invoked.
- This routine takes the current page (and splits it up if necessary)
- and appends it to the contrib box. The \hsize is then reduced (or
- restored) and the \vsize is multiplied (or restored). Then, to
- every insert which was not void during the false output routine a
- null insert is made. This restores the page goal (in case there are
- no bona fide insertions, one insertion is always made, it is called
- \hacker@). A new page total is then calculated from the height of
- the contrib box. The two macros employed to do this work are
- \balance@ and \newtotal@. Under no circumstances should the one be
- used without the other.
-
-NOTE 105: \balance invokes the false output routine which has the effect of
- balancing the columns if in multi-column mode. The page goal is
- then updated by \newtotal@.
-
-NOTE 106: \balance@ invokes the false output routine by setting \ifreal@ to
- false, and forcing an eject.
-
-NOTE 107: \newtotal@ restores the page total.
-
-NOTE 108: \multicol@#1 is called by the \BEGIN command for multi-column
- format. It takes as its only parameter the number of columns
- requested. It provides error checking and ignores the command
- if already in multi-column mode. If the command is legal, then
- the current page is balanced, and the \hsize and \vsize are
- adjusted. The insertion registers are modified, the page total
- is adjusted, and stretch is added to \baselineskip.
-
-<<OUTPUT ROUTINES>>
-
-NOTE 109: The output routines are complex. It is recommended that anyone
- wanting to understand how they work examine the LOG file of a
- short file with \tracingmacros=1 and \tracingcommands=2.
-
- There are two types of output routines: \realoutput@ produces a
- \shipout and \fakeoutput@ does not.
-
- The \toks registers associated with each insert are now reserved
- (as were \dimen, \skip and \count). Any tokens in these registers
- will be destroyed when the \output routine is active.
-
-NOTE 110: \realoutput puts the current page into \out@. If currently in one-
- column mode, it goes in directly, otherwise the current page is
- first split into columns. Box 255 is then set to \contrb@ with
- \old@ appended to it. The glue for insertions, \hsize, \vsize,
- \leftskip, and \rightskip are returned to normal for the \shipout.
- After the \shipout, the flags and counters are updated for the
- logical page macros.
-
-
-NOTE 111: \fakeoutput takes the current page, balances it if necessary, and
- puts it into \out@. \out@ is then appended to \contrb@.
-
- If any column must be shorter due to balancing, it ought to be the
- rightmost. The \vsplit primitive, however, will usually make the
- rightmost column longer. To avoid this problem, columns are split a
- little more than 1/2 or 1/3 down. Experimentation shows that adding
- 1.16667 baselines to the total height for 2 columns, and adding 2
- baselines to the total height for 3 columns affords the greatest
- probability of an aesthetic break.
-
-NOTE 112: The "@" is no longer a letter.
diff --git a/macros/hptex/hptex.tex b/macros/hptex/hptex.tex
deleted file mode 100644
index 3a3c21f6db..0000000000
--- a/macros/hptex/hptex.tex
+++ /dev/null
@@ -1,836 +0,0 @@
-% This is the HP TeX text format version A.00.00 as of Feb. 14, 1984.
-% It is compatible with the plain TeX format that's described in The TeXbook.
-%
-% Copyright 1984 Hewlett-Packard Co.
-%
-% NOTE 1, NOTE 2, etc. refer to notes in the file HPTEX.DOC
-%
-
-\input PLAIN.TEXT % NOTE 1
-
-\message{Preloading the HP TeX codes,}
-
-% SPECIAL CATCODES
-%
-\catcode`@=11 % NOTE 2
-
-% HPTEX
-%
-\def\HPTEX{HP\nobreak\ \TeX}
-\let\HpTeX=\HPTEX
-\def\fmtname{HP TeX}\def\fmtversion{A.00.00}
-
-% LEADERS
-%
-\def\dotfil{\tenrm\leaders\hbox to8\p@{\hss.\hss}\hss} % NOTE 3
-
-% CONSTANT VALUES
-%
-\chardef\zer@=0
-\chardef\f@ur=4
-\skipdef\skip@ii=2
-\maxdepth=2pt
-
-\message{fonts,}
-
-% FONTS % NOTE 4
-%
-\let\fontcheck=1 % NOTE 5
-\def\fontdef#1=#2 {\def#1{\font@{#1}{#2}}} % NOTE 6
-\def\font@#1#2{{\let\fontcheck=0\ifx0\fontcheck\egroup\global\font#1=#2#1%
- \else}\string#1 \fi}%--The space after \string#1 is necessary.
-
-% ROMAN TEXT
-%
-\fontdef\twentyfourrm={amr10 scaled \magstep5}
-\fontdef\eighteenrm={amr10 scaled \magstep3}
-\fontdef\fourteenrm={amr10 scaled \magstep2}
-\font\twelverm=amr10 scaled \magstep1
-%\font\tenrm=amr10
-\font\ninerm=amr9
-\font\eightrm=amr8
-%\font\sevenrm=amr7
-\font\sixrm=amr6
-%\font\fiverm=amr5
-
-% MATH ITALIC
-%
-\fontdef\twentyfouri={ammi10 scaled \magstep5}
-\fontdef\eighteeni={ammi10 scaled \magstep3}
-\fontdef\fourteeni={ammi10 scaled \magstep2}
-\fontdef\twelvei={ammi10 scaled \magstep1}
-%\font\teni=ammi10
-\fontdef\ninei={ammi9}
-\fontdef\eighti={ammi8}
-%\font\seveni=ammi7
-\fontdef\sixi={ammi6}
-%\font\fivei=ammi5
-
-% MATH SYMBOLS
-%
-\fontdef\twentyfoursy={amsy10 scaled \magstep5}
-\fontdef\eighteensy={amsy10 scaled \magstep3}
-\fontdef\fourteensy={amsy10 scaled \magstep2}
-\fontdef\twelvesy={amsy10 scaled \magstep1}
-%\font\tensy=amsy10
-\fontdef\ninesy={amsy9}
-\fontdef\eightsy={amsy8}
-%\font\sevensy=amsy7
-\fontdef\sixsy={amsy6}
-%\font\fivesy=amsy5
-
-% BOLD MATH SYMBOLS
-%
-\fontdef\tenbfsy={ambsy10}
-
-% MATH EXTENSION
-%
-%\font\tenex=amex10
-
-% SANS SERIF
-%
-\fontdef\fourteenss={amss10 scaled \magstep2}
-\fontdef\twelvess={amss10 scaled \magstep1}
-\font\tenss=amss10
-\font\eightss=amssq8
-
-% SANS SERIF ITALIC
-%
-\font\tenitss=amssi10
-\font\eightitss=amssqi8
-
-% BOLDFACE EXTENDED
-%
-\fontdef\twentyfourbf={ambx10 scaled \magstep5}
-\fontdef\eighteenbf={ambx10 scaled \magstep3}
-\fontdef\fourteenbf={ambx10 scaled \magstep2}
-\font\twelvebf=ambx10 scaled \magstep1
-%\font\tenbf=ambx10
-\font\ninebf=ambx9
-\font\eightbf=ambx8
-%\font\sevenbf=ambx7
-\font\sixbf=ambx6
-%\font\fivebf=ambx5
-
-% TYPEWRITER
-%
-\fontdef\twentyfourtt={amtt10 scaled \magstep5}
-\fontdef\eighteentt={amtt10 scaled \magstep3}
-\fontdef\fourteentt={amtt10 scaled \magstep2}
-\fontdef\twelvett={amtt10 scaled \magstep1}
-%\font\tentt=amtt10
-\font\ninett=amtt9
-\font\eighttt=amtt8
-
-% SLANTED TYPEWRITER
-%
-\font\tensltt=amsltt10
-
-% SLANTED ROMAN
-%
-\fontdef\twentyfoursl={amsl10 scaled \magstep5}
-\fontdef\eighteensl={amsl10 scaled \magstep3}
-\fontdef\fourteensl={amsl10 scaled \magstep2}
-\fontdef\twelvesl={amsl10 scaled \magstep1}
-%\font\tensl=amsl10
-\font\ninesl=amsl9
-\font\eightsl=amsl8
-
-% TEXT ITALIC
-%
-\fontdef\twentyfourit={amti10 scaled \magstep5}
-\fontdef\eighteenit={amti10 scaled \magstep3}
-\fontdef\fourteenit={amti10 scaled \magstep2}
-\fontdef\twelveit={amti10 scaled \magstep1}
-%\font\tenit=amti10
-\font\nineit=amti9
-\font\eightit=amti8
-\fontdef\sevenit={amti7}
-
-% UNSLANTED TEXT ITALIC
-%
-\font\tenuit=amu10
-
-
-% CAPS AND SMALL CAPS
-%
-\font\tencsc=amcsc10
-
-% SANS SERIF BOLD EXTENDED
-%
-\font\tenbfss=amssbx10
-
-
-% BOLD EXTENDED SLANTED
-%
-\font\tenslbf=ambxsl10
-
-
-% DUNHILL STYLE
-%
-\font\tendh=amdunh10
-
-% FOR TITLES
-%
-\font\titlefont=amr7 scaled \magstep4
-
-
-% BIG FONT
-%
-\font\bigfont=amssbx10 scaled \magstep2
-
-
-\message{macros,}
-
-% MACROS TO SET FSTYLE % NOTE 7
-%
-\def\rm{\fam\z@\def\fstyle{rm}\setfont}
-\def\it{\fam\itfam\def\fstyle{it}\setfont}
-\def\bf{\fam\bffam\def\fstyle{bf}\setfont\ifmmode{\tenbfsy}%
- \textfont2=\tenbfsy\fi}
-\def\sl{\fam\slfam\def\fstyle{sl}\setfont}
-\def\sa{\def\fstyle{ss}\setfont}
-\def\tt{\fam\ttfam\def\fstyle{tt}\setfont}
-
-\newfam\ssfam
-
-% MACROS TO SET FSIZE % NOTE 8
-%
-\def\fivepoint{\def\fsize{five}\setfont\let\sfont=\fivepoint%
- \baselineskip7pt%
- \setbox\strutbox=\hbox{\vrule height4.5pt depth1.5pt width0pt}%
- \textfont0=\fiverm \scriptfont0=\fiverm%
- \scriptscriptfont0=\fiverm%
- \textfont1=\fivei \scriptfont1=\fivei%
- \scriptscriptfont1=\fivei%
- \textfont2=\fivesy \scriptfont2=\fivesy%
- \scriptscriptfont2=\fivesy}
-
-\def\sixpoint{\def\fsize{six}\setfont\let\sfont=\fivepoint%
- \baselineskip8pt%
- \setbox\strutbox=\hbox{\vrule height5pt depth2pt width0pt}%
- \textfont0=\sixrm \scriptfont0=\fiverm%
- \scriptscriptfont0=\fiverm%
- \scriptfont1=\fivei \scriptscriptfont1=\fivei%
- \scriptfont2=\fivesy \scriptscriptfont2=\fivesy%
- \def\changes{{\sixi\sixsy}%
- \textfont1=\sixi \textfont2=\sixsy}%
- \ifmmode\changes\else\everymath{\changes}%
- \everydisplay{\changes}\fi}
-
-\def\sevenpoint{\def\fsize{seven}\setfont\let\sfont=\fivepoint%
- \baselineskip9pt%
- \setbox\strutbox=\hbox{\vrule height6pt depth2pt width0pt}%
- \textfont0=\sevenrm \scriptfont0=\sixrm%
- \scriptscriptfont0=\fiverm%
- \textfont1=\seveni \scriptscriptfont1=\fivei%
- \textfont2=\sevensy \scriptscriptfont2=\fivesy%
- \def\changes{{\sixi\sixsy}%
- \scriptfont1=\sixi%
- \scriptfont2=\sixsy}%
- \ifmmode\changes\else\everymath{\changes}%
- \everydisplay{\changes}\fi}
-
-\def\eightpoint{\def\fsize{eight}\setfont\let\sfont=\sixpoint%
- \baselineskip9pt%
- \setbox\strutbox=\hbox{\vrule height7pt depth2pt width0pt}%
- \textfont0=\eightrm \scriptfont0=\sixrm%
- \scriptscriptfont0=\fiverm%
- \scriptscriptfont1=\fivei%
- \scriptscriptfont2=\fivesy%
- \def\changes{{\eighti\sixi\eightsy\sixsy}%
- \textfont1=\eighti \scriptfont1=\sixi%
- \textfont2=\eightsy \scriptfont2=\sixsy}%
- \ifmmode\changes\else\everymath{\changes}%
- \everydisplay{\changes}\fi}
-
-\def\ninepoint{\def\fsize{nine}\setfont\let\sfont=\sixpoint%
- \baselineskip11pt%
- \setbox\strutbox=\hbox{\vrule height8pt depth3pt width0pt}%
- \textfont0=\ninerm \scriptfont0=\sevenrm%
- \scriptscriptfont0\fiverm%
- \scriptfont1=\seveni \scriptscriptfont1\fivei%
- \scriptfont2=\sevensy \scriptscriptfont2\fivesy%
- \def\changes{{\ninei\ninesy}%
- \textfont1=\ninei%
- \textfont2=\ninesy}%
- \ifmmode\changes\else\everymath{\changes}%
- \everydisplay{\changes}\fi}
-
-\def\tenpoint{\def\fsize{ten}\setfont\let\sfont=\sevenpoint%
- \baselineskip12pt%
- \setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width0pt}%
- \textfont0=\tenrm \scriptfont0=\sevenrm%
- \scriptscriptfont0\fiverm%
- \textfont1=\teni \scriptfont1=\seveni%
- \scriptscriptfont1\fivei%
- \textfont2=\tensy \scriptfont2=\sevensy%
- \scriptscriptfont2\fivesy}
-
-\def\twelvepoint{\def\fsize{twelve}\setfont\let\sfont=\eightpoint%
- \baselineskip14pt%
- \setbox\strutbox=\hbox{\vrule height10pt depth4pt width0pt}%
- \textfont0=\twelverm \scriptfont0=\ninerm%
- \scriptscriptfont0=\sevenrm%
- \scriptscriptfont1=\seveni%
- \scriptscriptfont2=\sevensy%
- \def\changes{{\twelvei\ninei\twelvesy\ninesy}%
- \textfont1=\twelvei \scriptfont1=\ninei%
- \textfont2=\twelvesy \scriptfont2=\ninesy}%
- \ifmmode\changes\else\everymath{\changes}%
- \everydisplay{\changes}\fi}
-\def\fourteenpoint{\def\fsize{fourteen}\setfont\let\sfont=\tenpoint%
- \baselineskip16pt%
- \setbox\strutbox=\hbox{\vrule height12pt depth4pt width0pt}%
- \scriptfont0=\tenrm \scriptscriptfont0=\sevenrm%
- \scriptfont1=\teni \scriptscriptfont1=\seveni%
- \scriptfont2=\tensy \scriptscriptfont2=\sevensy%
- \def\changes{{\fourteeni\fourteenrm\fourteensy}%
- \textfont0=\fourteenrm%
- \textfont1=\fourteeni%
- \textfont2=\fourteensy}%
- \ifmmode\changes\else\everymath{\changes}\everydisplay{\changes}\fi}
-
-\def\eighteenpoint{\def\fsize{eighteen}\setfont\let\sfont=\tenpoint%
- \baselineskip18pt%
- \setbox\strutbox=\hbox{\vrule height15pt depth3pt width0pt}%
- \scriptfont0=\twelverm \scriptscriptfont0=\tenrm%
- \scriptscriptfont1=\teni%
- \scriptscriptfont2=\tensy%
- \def\changes{{\eighteenrm\eighteeni\twelvei\eighteensy\twelvesy}%
- \textfont0=\eighteenrm%
- \textfont1=\eighteeni \scriptfont1=\twelvei%
- \textfont2=\eighteensy \scriptfont2=\twelvesy}%
- \ifmmode\changes\else\everymath{\changes}%
- \everydisplay{\changes}\fi}
-\def\twentyfourpoint{\def\fsize{twentyfour}\setfont\let\sfont=\tenpoint%
- \baselineskip24pt%
- \setbox\strutbox=\hbox{\vrule height21.5pt depth2.5pt width0pt}%
- \def\changes{{\twentyfourrm\eighteenrm\fourteenrm\twentyfouri%
- \eighteeni\fourteeni\twentyfoursy\eighteensy\fourteensy}%
- \textfont0=\twentyfourrm \scriptfont0=\eighteenrm %
- \scriptscriptfont0=\fourteenrm%
- \textfont1=\twentyfouri \scriptfont1=\eighteeni%
- \scriptscriptfont1=\fourteeni%
- \textfont2=\twentyfoursy \scriptfont2=\eighteensy%
- \scriptscriptfont2=\fourteensy}%
- \ifmmode\changes\else\everymath{\changes}\everydisplay{\changes}\fi}
-
-% MACROS TO SET CURRENT FONT USING FSTYLE AND FSIZE
-%
-\newif\ifnofont@
-\def\tryfont#1{\expandafter\ifx\csname#1\endcsname\relax\nofont@true % NOTE 9
- \else\nofont@false\csname#1\endcsname\fi}
-\def\setfont{\tryfont{\ffam\fsize\fstyle}% % NOTE 10
- \ifnofont@\tryfont{\ffam\fsize rm}%
- \ifnofont@\tryfont{\ffam tenrm}%
- \ifnofont@\tenrm\fi\fi\expandafter
- \fonterr\csname\ffam\fsize\fstyle\endcsname{\the\font}\fi}
-\def\fonterr#1#2{\immediate\write\m@ne{! font #1is undefined,
- I'm using #2instead.}\xdef#1{#2}}
-
-% DEFAULTS % NOTE 11
-%
-\fam\z@\tenrm\def\ffam{}\def\fstyle{rm}\def\fsize{ten}\let\sfont=\sevenpoint
-
-% LINE MACROS % NOTE 12
-%
-\def\lline#1{\hbox to\hsize{\hskip\leftskip#1\hskip\rightskip}}
-\def\leftline#1{\lline{#1\hss}}
-\def\rightline#1{\lline{\hss#1}}
-\def\centerline#1{\lline{\hss#1\hss}}
-
-% MORE MACROS
-%
-\def\narrow#1{\advance\leftskip#1\advance\rightskip#1}
-\def\narrower{\narrow\parindent} % NOTE 13
-\def\narrow@{\narrow\inset}
-\def\inc#1{\advance#1\@ne}
-\def\dec#1{\advance#1\m@ne}
-\def\ignore#1{\relax}
-\def\okbreak{\par\penalty-200}
-\def\need{\afterassignment\need@\dimen@} % NOTE 14
-\def\need@{\vskip\dimen@ minus\dimen@\okbreak\vskip-\dimen@ minus-\dimen@}
-\def\for#1=#2to#3do#4{#1=#2\ifnum#2>#3\else\let\next@=\fnext@ % NOTE 15
- \def\fcount@{#1}\def\fexit@{#3}\def\floop@{#4}\next@\fi}
-\def\fnext@{\floop@\ifnum\fcount@<\fexit@\inc\fcount@ % NOTE 16
- \else\let\next@=\relax\fi\next@}
-\def\super#1{\/\raise.4em\hbox{\sfont#1}\thinspace}
-\def\sub#1{\lower.25em\hbox{\sfont#1}\thinspace}
-\def\lbreak{\hfill\break}
-\def\uline#1{\setbox0=\hbox{#1}\dimen@=-\dp0\advance\dimen@ .23em % NOTE 17
- \ifvmode\indent\fi\hbox to \wd0{\lower.27em
- \vbox{\box0\vskip\dimen@\hrule height.04em}}}
-
-% START AND FINISH GROUP STRUCTURE % NOTE 18
-%
-\def\start#1{\errfalse\ifinvalid@{#1}\else\begingroup % NOTE 19
- \def\blockname@{#1}\csname BEGIN#1\endcsname\fi\Error}
-\def\finish#1{\errfalse\ifinvalid@{#1}\else\matchup@{#1}\fi\Error} % NOTE 20
-\def\ifinvalid@#1{\expandafter\ifx\csname BEGIN#1\endcsname\relax % NOTE 21
- \errset{I don't understand {#1}, it may be misspelled}}
-\def\matchup@#1{\def\test@{#1}% % NOTE 22
- \expandafter\ifx\csname blockname@\endcsname\relax
- \errset{Extra \string\finish{\test@} ignored}%
- \else\ifx\test@\blockname@\done
- \else\errset{Missing \string\finish{\blockname@} inserted}%
- \done\matchup@{#1}\fi\fi}
-\def\done{\csname END\blockname@\endcsname\endgroup} % NOTE 23
-
-% GENERAL ERROR HANDLING % NOTE 24
-%
-\def\errfalse{\global\let\iferr=\iffalse}
-\def\errtrue{\global\let\iferr=\iftrue}
-\def\errset#1{\iferr\immediate\write0{! \error}\else\errtrue\fi\xdef\error{#1}}
-\def\Error{\iferr\errmessage{\error}\fi}
-
-% DATE AND TIME MACROS
-%
-\newcount\cntA@\newcount\cntB@\newcount\cntC@
-\def\mon{\ifcase\month\relax\or January\or February\or March\or % NOTE 25
- April\or May\or June\or July\or August\or September\or October\or
- November\or December\fi}
-\def\date{\mon\nobreak\ \number\day, \number\year} % NOTE 26
-\def\hour{{\cntA@=\time \cntB@=\cntA@ % NOTE 27
- \divide\cntA@60 \cntC@=\cntA@ \multiply\cntC@60
- \advance\cntB@-\cntC@\ifnum\cntA@>11
- \advance\cntA@-12 \def\time@{PM}\else\def\time@{AM}\fi
- \ifnum\cntA@=0 \cntA@=12 \fi\number\cntA@
- :\ifnum\cntB@<10 0\fi\number\cntB@\nobreak\ \time@}}
-
-% INDENTSTYLE
-%
-\newdimen\indentsize\indentsize=20pt
-\newif\ifindent\indenttrue % NOTE 28
-\def\indentstyle{\parindent\indentsize % NOTE 29
- \ifindent\else\indenttrue\advance\parskip-5\p@\fi}
-\def\noindentstyle{\parindent\z@ % NOTE 30
- \ifindent\indentfalse\advance\parskip5\p@\fi}
-\def\indentspace{\afterassignment\indent@\indentsize} % NOTE 31
-\def\indent@{\ifindent\parindent\indentsize\fi}
-\newdimen\inset
-\inset.5in
-\def\BEGINindent{\advance\leftskip \inset}
-\let\ENDindent=\par
-
-% RAGGED MARGIN AND JUSTIFIED MARGIN MACROS
-%
-\def\fixmargin@{\dimen@=\rightskip\rightskip=\dimen@} % NOTE 32
-\def\justify{\fixmargin@\spaceskip\z@\xspaceskip\z@} % NOTE 33
-\def\raggedright{\fixmargin@\advance\rightskip\z@ plus2em % NOTE 34
- \ifx\fstyle\tt@\else\spaceskip.3333em\xspaceskip.5em\fi}
-\def\tt@{tt} % NOTE 35
-
-% ITEM AND SUBITEM MACROS
-%
-\newcount\icount@\newcount\scount@
-\newcount\idigit@\newcount\sdigit@
-\def\itemset@#1#2#3{\dimen@=\hsize \advance\dimen@-#2\inset % NOTE 36
- \parshape=\@ne#1\inset\dimen@\noindent
- \hbox to\z@{\hss#3\enspace}\ignorespaces}
-\def\itemlist#1{\medskip\resetsubitems\itemset@\@ne\tw@{#1}} % NOTE 37
-\def\subitem#1{\smallskip\itemset@\tw@\f@ur{#1}} % NOTE 38
-\def\itempar{\smallskip\itemset@\@ne\tw@\empty} % NOTE 39
-\def\subitempar{\subitem\empty} % NOTE 40
-\def\enditems{\bigskip\resetitems}
-
-% ITEMTAG AND SUBITEMTAG MACROS % NOTE 41
-%
-\def\square{\hbox{\hskip.5pt\vrule height.4em width.4em depth 0em}}
-\def\dott{$\bullet$}
-\def\emdash{---}
-\def\itemn@#1{\number#1\global\inc#1} % NOTE 42
-\def\itemr@#1{\romannumeral#1\global\inc#1} % NOTE 43
-\def\itemR@#1{\uppercase\expandafter{\romannumeral#1}\global\inc#1} % NOTE 44
-\def\iteml@#1#2{{\loop\char#1\ifnum#2>\@ne\dec#2\repeat}\global\inc#1%% NOTE 45
- \ifnum#1>122 \global#1=97 \global\inc#2\fi \ifnum#1=91 \global#1=65
- \global\inc#2\fi}
- \def\item@ #1,#2,#3{\def\itemtag{#3}% % NOTE 46
- \def\resetitems{\global\icount@=#1\global\idigit@=#2}\resetitems}
-\outer\def\numbereditems{\item@ 1,0,{\itemn@\icount@}}
-\outer\def\lettereditems{\item@ 97,1,{\iteml@\icount@\idigit@}}
-\outer\def\Lettereditems{\item@ 65,1,{\iteml@\icount@\idigit@}}
-\outer\def\romanitems{\item@ 1,0,{\itemr@\icount@}}
-\outer\def\Romanitems{\item@ 1,0,{\itemR@\icount@}}
-\outer\def\squareditems{\let\itemtag=\square\let\resetitems=\relax}
-\outer\def\dotteditems{\let\itemtag=\dott\let\resetitems=\relax}
-\outer\def\dasheditems{\let\itemtag=\emdash\let\resetitems=\relax}
-\def\itm{\itemlist{\tenrm\itemtag\ifx\relax\resetitems\else.\fi}} % NOTE 47
-
-\def\subitem@ #1,#2,#3{\def\subitemtag{#3}% % NOTE 48
- \def\resetsubitems{\global\scount@=#1\global\sdigit@=#2}\resetsubitems}
-\outer\def\numberedsubitems{\subitem@ 1,0,{\itemn@\scount@}}
-\outer\def\letteredsubitems{\subitem@ 97,1,{\iteml@\scount@\sdigit@}}
-\outer\def\Letteredsubitems{\subitem@ 65,1,{\iteml@\scount@\sdigit@}}
-\outer\def\romansubitems{\subitem@ 1,0,{\itemr@\scount@}}
-\outer\def\Romansubitems{\subitem@ 1,0,{\itemR@\scount@}}
-\outer\def\squaredsubitems{\let\subitemtag=\square\let\resetsubitems=\relax}
-\outer\def\dottedsubitems{\let\subitemtag=\dott\let\resetsubitems=\relax}
-\outer\def\dashedsubitems{\let\subitemtag=\emdash\let\resetsubitems=\relax}
-\def\sitm{\subitem{\tenrm\subitemtag\ifx\relax\resetsubitems\else.\fi}}
- % NOTE 49
-\numbereditems\letteredsubitems % NOTE 50
-
-% NOTE AND WARNING MACROS
-%
-\def\BEGINnote{\bigskip\narrow@\narrow@\nobreak} % NOTE 51
-\let\ENDnote=\bigskip
-\def\BEGINwarning{\bigskip\nobreak\narrow@\narrow@\marginrule.02667in % NOTE 52
- \nobreak\medskip\nobreak}
-\def\ENDwarning{\nobreak\medskip\nobreak\marginrule.02667in \bigskip}
-\def\marginrule#1 {\nointerlineskip\vbox to#1{\vss % NOTE 53
- \lline{\leaders\hrule height#1\hss}}}
-
-
-% VERBATIM MODE % NOTE 54
-%
-\newskip\blanksize@
-\bgroup\catcode`\*=3 \catcode`\$=13 \catcode`\#=13
- \catcode`\^=13 \catcode`\_=13 \catcode`\|=13 \catcode`\~=13
-\gdef\BEGINverbatim{\parskip=0pt plus1pt
- \catcode`\$=13 \def${\indent\hbox to \the\fontdimen\tw@\the\font
- {\hss\$\hss}}
- \catcode`\&=12
- \catcode`\#=13 \def#{\indent\hbox to \the\fontdimen\tw@\the\font
- {\hss*\#*\hss}}
- \catcode`\^=13 \def^{\indent\hbox to \the\fontdimen\tw@\the\font
- {\hss*\mathchar"327D*\hss}}
- \catcode`\_=13 \def_{\indent\hbox to \the\fontdimen\tw@\the\font
- {\hss\_\hss}}
- \catcode`\%=12
- \catcode`\|=13 \def|{\indent\hbox to \the\fontdimen\tw@\the\font
- {\hss*\mathchar"326A*\hss}}
- \catcode`\~=13 \def~{\indent\hbox to \the\fontdimen\tw@\the\font
- {\hss*\mathchar"3218*\hss}}
- \parindent\z@\lumplines\lumpspaces}
-\egroup
-
-% LUMPLINE AND LUMPSPACE MACROS % NOTE 55
-%
-{\catcode`\^^M=13 \gdef\lumplines{\catcode`\^^M=13 \let^^M=\lumpline@}}
-\def\lumpline@{\par\skip@=\z@\let\munch@=\lumpB@\futurelet\lump@\lumpA@}
-\def\lumpA@{\ifx\lumpline@\lump@\advance\skip@\baselineskip
- \else\let\munch@=\relax\vskip\skip@\fi\munch@}
-\def\lumpB@#1{\futurelet\lump@\lumpA@}
-{\catcode`\ =13 \gdef\lumpspaces{\catcode`\ =13\relax\let =\lumpspace@}}
-\def\lumpspace@{\blanksize@=\the\fontdimen\tw@\the\font
- \skip@=\z@\let\munch@=\lumpb@\futurelet\lump@\lumpa@}
-\def\lumpa@{\advance\skip@\blanksize@\ifx\lumpspace@\lump@
- \else\let\munch@=\relax\hskip\skip@\fi\munch@}
-\def\lumpb@#1{\futurelet\lump@\lumpa@}
-\let\munch@=\relax
-
-% PAGE CONTROL MACROS % NOTE 56
-%
-\def\newpage{\balance\ifold@\null\vfill\eject\fi}
-\def\evenpage{\newpage\ifodd\pageno\null\vfill\eject\fi}
-\def\oddpage{\newpage\ifodd\pageno\else\null\vfill\eject\fi}
-
-% HEADING AND FOOTING MACROS % NOTE 57
-%
-\newtoks\leftheading \newtoks\leftfooting
-\newtoks\rightheading \newtoks\rightfooting
-\newtoks\centerheading \newtoks\centerfooting
-\newtoks\insideheading \newtoks\insidefooting
-\newtoks\outsideheading \newtoks\outsidefooting
-\newtoks\headline \newtoks\footline
-\def\buildline{\let\lft=\zer@\let\rght=\@ne % NOTE 58
- \ifdim\wd3=\z@\else\ifodd\pageno\let\lft=\thr@@\else\let\rght=\thr@@\fi\fi
- \ifdim\wd4=\z@\else\ifodd\pageno\let\rght=\f@ur\else\let\lft=\f@ur\fi\fi
- \triplehead\lft\tw@\rght}
-\def\triplehead#1#2#3{\skip@=1em\skip@ii=1em % NOTE 59
- \dimen@=\wd#1\advance\dimen@-\wd#3%
- \ifdim\dimen@>\z@\advance\skip@ii\dimen@ minus\dimen@
- \else\advance\skip@-\dimen@ minus-\dimen@\fi
- {\box#1\hskip\skip@\hfil\box#2\hfil\hskip\skip@ii\box#3}}
-\def\loadbox#1#2{\setbox#1=\hbox{\the#2}} % NOTE 60
-\newcount\headcount\newcount\footcount
-\def\suspendheading#1{\global\headcount=#1}
-\def\suspendfooting#1{\global\footcount=#1}
-\def\noheading{\suspendheading\m@ne}
-\def\nofooting{\suspendfooting\m@ne}
-\def\resumeheading{\suspendheading\zer@}
-\def\resumefooting{\suspendfooting\zer@}
-\headline{\ifnum\headcount=\z@\loadbox\tw@\centerheading % NOTE 61
- \loadbox\zer@\leftheading\loadbox\@ne\rightheading
- \loadbox\thr@@\insideheading\loadbox\f@ur\outsideheading\buildline
- \else\hfil\ifnum\headcount>\z@\global\dec\headcount\fi\fi}
-\footline{\ifnum\footcount=\z@\loadbox\tw@\centerfooting % NOTE 62
- \loadbox\zer@\leftfooting\loadbox\@ne\rightfooting
- \loadbox\thr@@\insidefooting\loadbox\f@ur\outsidefooting\buildline
- \else\hfil\ifnum\footcount>\z@\global\dec\footcount\fi\fi}
-\resumeheading
-\resumefooting
-% footline is normally a centered page number in font \tenrm
-\centerfooting{\tenrm\folio}
-
-% BOX MACROS
-%
-\newdimen\boxline
-\newdimen\boxspace
-\boxline .01332in
-\boxspace 5pt
-\newdimen\depthbox@
-\def\boxit#1{\hbox{\vrule width\boxline % NOTE 63
- \vbox{\hrule height\boxline\kern\boxspace
- \hbox{\kern\boxspace
- \vbox{\halign{\hfil##\hfil\cr\strut#1\strut\cr}}%
- \kern\boxspace}%
- \kern\boxspace\hrule height\boxline}%
- \vrule width\boxline}}
-\def\centerbox#1{\vskip\abovedisplayskip % NOTE 64
- \centerline{\boxit{#1}}%
- \vskip\belowdisplayskip}
-\def\textbox#1{\depthbox@=\dp\strutbox\advance\depthbox@ by .4\p@ % NOTE 65
- \ifvmode\indent\fi\setbox\z@\hbox{\vrule
- \vbox{\hrule\hbox{\kern\p@#1\strut\kern\p@}\hrule}%
- \vrule}\lower\depthbox@\box\z@}
-
-% HP2680A and HP2688A COPY CONTROL MACROS % NOTE 66
-%
-\newcount\oldcopy\newcount\copycnt
-\def\copy@{\globalspecial{HP2688A,HP2680A COPIES \number\copycnt}}
-\def\selectcopycount{\afterassignment\copy@\copycnt}
-\def\copieson{\global\count\copycnt=\oldcopy\copy@}
-\def\copiesoff{\global\count\copycnt=1 \copy@}
-\def\copies{\afterassignment\copieson\global\oldcopy}
-\copycnt=1
-\oldcopy=2
-
-% HP2680A and HP2688A LOGICAL PAGE CONTROL (LPC) MACROS % NOTE 67
-%
-\def\lplist#1{\globalspecial{HP2688A,HP2680A ILP #1}}
-\def\lpdef#1{\globalspecial{HP2688A,HP2680A LP #1}}
-\newif\ifempty@\empty@true
-\newcount\lpcount@\newcount\nextlp@
-\def\selectlpcounter#1{\lpcount@#1 \setlpcount@{\the\lpcount@}}
-\def\setlpcount@#1{\globalspecial{HP2688A,HP2680A ELP #1}}
-\def\lpageto{\eject\afterassignment\lpeject@\nextlp@}
-\def\ppageto{\eject\afterassignment\lpage@\nextlp@}
-\def\lpeject@{\nextlp@=-\nextlp@\lpage@}
-\def\lpresume{\eject\nextlp@=\z@\lpage@}
-\def\lpreset{\eject\nextlp@=33 \lpage@ \nextlp@=\z@}
-\def\lpexit{\eject\nextlp@=34 \lpage@ \nextlp@=\z@}
-\def\lpage@{\ifempty@\count\lpcount@=\nextlp@\global\empty@false\fi}
-\everyjob{\message{Using HP TeX Version \fmtversion}\selectlpcounter2 {}}
-
-% TABLE MACROS % NOTE 68
-%
-\newcount\maxcol@
-\newbox\topstrutbox \def\topstrut{\unhcopy\topstrutbox}
-\setbox\topstrutbox=\hbox{\vrule height11pt depth0pt width0pt}
-\newbox\botstrutbox \def\botstrut{\unhcopy\botstrutbox}
-\setbox\botstrutbox=\hbox{\vrule height0pt depth4pt width0pt}
-\newdimen\tableline \tableline.01332in
-\newskip\tablespace \tablespace5pt
-\def\paragraph#1{\vbox{\hrule height\z@ width\hsize depth\z@#1}}
-\def\tbar{\ifvmode\hrule\else\vrule width\hsize depth\z@\fi height\tableline}
-\def\uptoks@{\inc\cntA@\inc\cntB@ % NOTE 69
- \ifnum\cntA@<\count19 \ifnum\cntB@<\count19 \else\err@\fi\else\err@\fi}
-\def\err@{\errmessage{Columns too wide for tabular format}}
-\def\bump@{\ifnum\cntC@<\maxcol@\inc\cntC@\uptoks@\fi} % NOTE 70
-\def\tableformat#1{\tablelet\just@\just@\relax\parse@#1~\done@~} % NOTE 71
-\def\tablerow#1{\tablelet\bbar@\wbar@\endrow@\parse@#1~\done@~} % NOTE 72
-\def\tablebar#1{{\let\topstrut\relax\let\botstrut\relax\tablespace\z@%% NOTE 73
- \tablerow{#1}}}
-\def\tablelet#1#2#3{\let\b@#1\let\w@#2\let\f@#3\cntA@\count15 \cntB@\count11%
- \cntC@\z@\let\parse@=\parseline@\ifhmode\par\else\nointerlineskip\fi}
- % NOTE 74
-\def\just@#1{\let\b@\tform@\let\w@\tform@\maxcol@\z@\let\tablejust@#1}
- % NOTE 75
-
-\def\tform@#1{\tform@@#1~} % NOTE 76
-\def\tform@@#1#2~{\uptoks@\toks\cntA@{#1}\dimen\cntB@#2\inc\maxcol@} % NOTE 77
-\def\bbar@#1{\beginrow@{#1}\vrule width\tableline\vrule width\z@#1} % NOTE 78
-\def\wbar@#1{\beginrow@{#1}\kern\tableline\vrule width\z@#1} % NOTE 79
-\def\beginrow@#1{\let\b@\vbar@\let\w@\ibar@\setbox\z@=\hbox\bgroup% % NOTE 80
- \parindent\z@\leftskip\tablespace\rightskip\tablespace\let\span=\span@}
-\def\endrow@{\kern-\dimen\cntB@\egroup\tablejust@{\unhbox\z@}} % NOTE 81
-\def\vbar@#1{\futurelet\lookahead@\cs@#1~\vrule width\tableline} % NOTE 82
-\def\ibar@#1{\futurelet\lookahead@\cs@#1~\kern\tableline} % NOTE 83
-\def\cs@#1~{\ifx\span@\lookahead@#1~\else\span@\@ne#1~\fi\lower\ht\z@\box\z@}
- % NOTE 84
-\def\parseline@#1~{\ifx\done@#1\let\parse@\f@\else\let\p@ss\parsecol@%
- \p@ss#1|\done@|\fi\parse@} % NOTE 85
-\def\parsecol@#1|{\def\parsemode@{\ifx\done@\lookahead@\w@{#1}% % NOTE 86
- \let\p@ss\lastp@ss\else\b@{#1}\fi\p@ss}%
- \futurelet\lookahead@\parsemode@}
-\def\lastp@ss#1|{}
-\def\span@#1#2~{\bump@\hsize\dimen\cntB@\edef\x@{\the\toks\cntA@}% % NOTE 87
- \for\count@=2to#1do%
- {\bump@\advance\hsize\dimen\cntB@\advance\hsize\tableline}%
- \setbox\z@=\x@{\topstrut#2\botstrut}}
-
-% SECTION AND HEADING MACROS % NOTE 88
-%
-\newcount\basehead\basehead=\count10
-\advance\count10by4 % This allocates 4 counters for head counters
-\newcount\hdlevel
-\def\setlevelno#1{\hdlevel=0 \cntA@=\basehead\sethead@0#1.-1.\head@} % NOTE 89
-\def\sethead@#1.{\ifnum-1=#1 \let\next@=\relax\else\let\next@=\sethead@
- % NOTE 90
- \ifnum\hdlevel<4 \inc\hdlevel\inc\cntA@\count\cntA@=#1\fi\fi\next@}
-\def\head#1{\ifnum#1>\hdlevel\uplevel@{#1}\else % NOTE 91
- \hdlevel=#1\cntA@=#1\advance\cntA@\basehead\fi
- \inc{\count\cntA@}\head@}
-\def\uplevel@#1{\inc\hdlevel\cntA@=\hdlevel % NOTE 92
- \advance\cntA@\basehead\count\cntA@=0
- \ifnum\hdlevel=#1 \else\uplevel@{#1}\fi}
-\def\head@{{\inc\basehead\xdef\levelno{\the\count\basehead} % NOTE 93
- \for\cntB@=\tw@ to\hdlevel do{\inc\basehead
- \xdef\levelno{\levelno.\the\count\basehead}}}}
-\setlevelno{0}
-
-\newtoks\firstlevelhead \def\headA@{\head\@ne\the\firstlevelhead} % NOTE 94
-\newtoks\secondlevelhead \def\headB@{\head\tw@\the\secondlevelhead}
-\newtoks\thirdlevelhead \def\headC@{\head\thr@@\the\thirdlevelhead}
-\newtoks\fourthlevelhead \def\headD@{\head\f@ur\the\fourthlevelhead}
-
-\def\level#1#2{\def\title{#2}% % NOTE 95
- \ifcase#1\relax\or\headA@\or\headB@\or\headC@\or\headD@\fi}
-\firstlevelhead{\vfill\eject\vbox to1.5in{}\centerline{\fourteenbf\title}%
- \vskip1.0in\ctswrite{\vrule height20pt width0pt\tenbf\title}}
-\secondlevelhead{\need.75in\bigskip\leftline{\twelvebf\levelno\enspace\title}%
- \medskip\ctswrite{\hskip15pt\tenrm\title}}
-\thirdlevelhead{\need.6in\medskip\leftline{\tenbf\levelno\enspace\title}%
- \ctswrite{\hskip30pt\tenrm\title}}
-\fourthlevelhead{\need.5in\leftline{\tenrm\levelno\enspace\title}%
- \ctswrite{\hskip45pt\tenrm\title}}
-
-% CONTENTS FILE MACROS
-%
-\newwrite\cnts@
-\newif\ifnocts@\nocts@true
-\newtoks\topofcontents
-\newtoks\botofcontents
-\let\content@=\let% % NOTE 96
-\def\ctswrite#1{\ifnocts@\openout\cnts@=\jobname*[*]. \nocts@false\fi% NOTE 97
- {\def\_{\kern.06em \vbox{\hrule width.3em}}\let\the=0
- \edef\a@{\write\cnts@{\content@{#1}{\the\pageno}}}\a@}}
-{\catcode`\@=12 \gdef\content@ #1#2{\need.5in\lline{#1\dotfil#2}}}
-\def\contents{\ifnocts@\else\closeout\cnts@\null\supereject % NOTE 98
- \begingroup\pageno\m@ne\null\the\topofcontents\input\jobname*.
- \the\botofcontents\eject\endgroup\nocts@true\fi}
-\topofcontents{\noheading\vskip1in plus1fil
- \centerline{\fourteenbf Table of Contents}\vskip1in plus1fil}
-\botofcontents{\vfil}
-
-% FOOTNOTES AND INSERTIONS
-%
-\def\vfootnote#1{\insert\footins\bgroup % NOTE 99
- \interlinepenalty\interfootnotelinepenalty
- \splittopskip\ht\strutbox % top baseline for broken footnotes
- \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
- \realhsize\leftskip\z@skip \rightskip\z@skip
- \baselineskip1\baselineskip
- \textindent{#1}\footstrut\futurelet\next\fo@t}
-
-\newcount\notenumber
-\def\resetnotes{\global\notenumber=0 }
-\def\note{\global\inc\notenumber\footnote{$^{\the\notenumber}$}} % NOTE 100
-\def\midinsert{\@midtrue\p@gefalse\@ins} % NOTE 101
-\def\@ins{\par\begingroup\setbox\z@\vbox\bgroup\realhsize\divide\vsize\nocol@}
- % NOTE 102
-\def\endinsert{\egroup\count@-100 % finish the \vbox % NOTE 103
- \ifp@ge\else\dimen@\ht\z@\advance\dimen@\dp\z@
- \advance\dimen@12\p@\multiply\dimen@-\nocol@
- \advance\dimen@-\pagetotal\advance\dimen@\pagegoal
- \ifdim\dimen@<\z@\@midfalse\else\count@100 \fi\fi
- \if@mid \balance@
- \global\setbox\contrb@\vbox{\unvbox\contrb@\bigskip\box\z@}\newtotal@
- \else\insert\topins{\penalty\count@ % floating insertion
- \splittopskip\z@skip\splitmaxdepth\maxdimen\floatingpenalty\z@
- \ifp@ge \divide\vsize\nocol@ \dimen@\dp\z@
- \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero
- \else \box\z@\nobreak\bigskip\fi}\fi\endgroup}
-
-% COLUMN MACROS % NOTE 104
-%
-\def\BEGINtwocolumns{\multicol@\tw@}
-\def\BEGINthreecolumns{\multicol@\thr@@}
-\def\ENDtwocolumns{\balance@\goal@\divide\endgroup\newtotal@\begingroup}
-\let\ENDthreecolumns=\ENDtwocolumns
-\def\balance{\balance@\newtotal@} % NOTE 105
-\def\balance@{\par{\let\ifreal@=\iffalse\eject}} % NOTE 106
-\def\newtotal@{{\each@{\the\toks\count@} % NOTE 107
- \ifold@\insert\hacker@{}\prevtotal@\pagetotal-\dimen@\fi}}
-\def\multicol@#1{\ifnum\nocol@>\@ne\errset{You can't have columns % NOTE 108
- within columns. \string\start{\blockname@} ignored}\endgroup
- \else\balance@\nocol@=#1\goal@\multiply\advance\hsize\columnspace
- \divide\hsize#1\advance\hsize-\columnspace
- \multiply\vsize#1\brokenpenalty\z@
- \each@{\multiply\count\count@\nocol@\multiply\skip\count@\nocol@}%
- \newtotal@\global\dimen@=\baselineskip\baselineskip\dimen@ plus\dimen@\fi}
-
-\message{output routines}
-
-% OUTPUT ROUTINES % NOTE 109
-%
-\newbox\contrb@ \newbox\out@
-\newdimen\columnspace
-\columnspace=.5in
-\let\ifreal@=\iftrue
-\newcount\nocol@ \nocol@=1
-\newinsert\hacker@
-\def\ifold@{\ifvoid\contrb@\else}
-\def\ifcol@{\ifnum\nocol@=\@ne\setbox\out@=\box\@cclv \else}
-\def\setboxA@{\inc\cntA@\setbox\cntA@}
-\def\boxA@{\inc\cntA@\box\cntA@}
-\def\each@#1{\for\count@=\count19 to254 do{#1}}
-\def\unglue@#1{\setbox#1=\vbox{\unvbox#1}}
-\def\realhsize{\advance\hsize\columnspace\multiply\hsize\nocol@
- \advance\hsize-\columnspace}
-\output{\hpoutput}
-
-\def\hpoutput{\splittopskip=\topskip
- \setbox\hacker@=\box\voidb@x
- \ifvoid\contrb@\dimen@=\ht\@cclv
- \else\prevtotal@\advance\dimen@\ht\@cclv\fi
- \ifreal@\realoutput@\else\fakeoutput@\fi
- \each@{\global\toks\count@\ifvoid\count@{}\else{\insert\count@{}}\fi}}
-
-\def\realoutput@{\ifcol@\splitcol@\split@\setheight@\setout@ % NOTE 110
- \unvbox\@cclv \penalty\outputpenalty\fi
- \setbox\@cclv=\pagestuff@{}\each@{\divide\skip\count@\nocol@}%
- \realhsize\divide\vsize\nocol@\leftskip\z@\rightskip\z@
- \plainoutput\global\empty@true
- \global\count\lpcount@=\nextlp@\ifnum\nextlp@>32 \global\nextlp@\z@\fi}
-
-\def\fakeoutput@{\unglue@{\@cclv}\global\let\ifreal@=\iftrue % NOTE 111
- \ifcol@\dimen@=\baselineskip
- \dimen@=\ifnum\nocol@>2 2\dimen@ \else 1.1667\dimen@ \fi
- \advance\dimen@\ht\@cclv\splitcol@{\box\@cclv}\setmax@\setout@\fi
- \dimen@=\dp\out@\global\setbox\contrb@=\pagestuff@{\vskip-\dimen@}}
-
-\def\makeheadline{\vbox to\z@{\vskip-22.5\p@
- \lline{\vbox to8.5\p@{}\the\headline}\vss}\nointerlineskip}
-\def\makefootline{\baselineskip24\p@\lline{\the\footline}}
-
-\def\pagecontents{\ifvoid\topins\else\unvbox\topins\fi
- \unvbox\@cclv % open up \box255
- \ifvoid\footins\else % footnote info is present
- \vskip\skip\footins
- \footnoterule
- \unvbox\footins\fi
- \ifr@ggedbottom\vfil\fi}
-
-\def\splitcol@#1{\divide\dimen@\nocol@\cntA@=\count14
- \for\count@=\tw@ to\nocol@ do{\setboxA@=\split@}\setboxA@=#1}
-\def\split@{\ifvoid\@cclv\vbox{\lline\hfil\vfil}\else\vsplit\@cclv to\dimen@\fi}
-\def\setheight@{\ifold@\setmax@\fi}
-\def\pagestuff@#1{\vbox{\ifold@\unvbox\contrb@\medskip\fi\unvbox\out@#1}}
-\def\setout@{\cntA@=\count14 \setbox\out@=\vbox{\hbox
- {\for\count@=\tw@ to\nocol@ do{\boxA@\hskip\columnspace}\boxA@}}}
-\def\setmax@{\dimen@=\z@ \cntA@=\count14
- \for\count@=\@ne to\nocol@ do{\inc\cntA@\unglue@{\cntA@}%
- \ifdim\ht\cntA@>\dimen@ \dimen@=\ht\cntA@\fi}%
- \for\count@=\@ne to\nocol@ do{\setbox\cntA@
- =\vbox to\dimen@{\unvbox\cntA@\ifr@ggedbottom\vss\fi}\dec\cntA@}}
-\def\prevtotal@{\dimen@=\medskipamount
- \advance\dimen@\ht\contrb@\multiply\dimen@-\nocol@}
-\def\goal@#1{\ifdim\pagegoal=\maxdimen\else
- \dimen@=\pagegoal#1\dimen@\nocol@\pagegoal\dimen@\fi}
-
-
-\catcode`@=12 % NOTE 112
-
diff --git a/macros/hptex/macroshc.tex b/macros/hptex/macroshc.tex
deleted file mode 100644
index 706a8c3439..0000000000
--- a/macros/hptex/macroshc.tex
+++ /dev/null
@@ -1,897 +0,0 @@
-% THIS IS FILE MACROSHC
-%
-% *** Source file for hard copy of HP TEX Macro Package ***
-% Copyright 1984 Hewlett-Packard Co.
-%
-%\lpdef{1,1in,1.34in,P}
-%\vsize52pc
-%\hsize39pc
-\def\evenheading{\vbox{\hbox to \hsize{\eightrm Page \folio\hfil\HPTEX}
- \nointerlineskip\vskip2pt
- \hbox{\vrule width \hsize height .4pt}}}
-\def\oddheading{\vbox{\hbox to \hsize{\eightrm The \HPTEX\
- Macros\hfil Page \folio}
- \nointerlineskip\vskip2pt
- \hbox{\vrule width \hsize height .4pt}}}
-\def\noheading{\hfil}
-\headline{\ifnum\pageno=1\noheading
- \else\ifodd\pageno\oddheading
- \else\evenheading\fi\fi}
-\centerfooting{}
-
-\def\\{\char '134}
-\def\lftbr{\char '173}
-\def\rtbr{\char '175}
-
-\null
-\vskip.5in
-\centerline{\twelvebf THE \HPTEX\ MACROS}\footnote{}{\eightrm\copyright 1984
- Hewlett-Packard Co.}
-\vskip1in
-
-\start{verbatim}
-\tentt
-
-\% This is the HP TeX text format version A.00.00 as of Feb. 14, 1984.
-\% It is compatible with the plain TeX format that's described in The TeXbook.
-\%
-\% NOTE 1, NOTE 2, etc. refer to notes in the file HPTEXDOC
-\%
-
-\\input PLAIN.TEXT \% NOTE 1
-
-\\message{\lftbr}Preloading the HP TeX codes,{\rtbr}
-
-\% SPECIAL CATCODES
-\%
-\\catcode`@=11 \% NOTE 2
-
-\% HPTEX
-\%
-\\def\\HPTEX{\lftbr}HP\\nobreak\\ \\TeX{\rtbr}
-\\let\\HpTeX=\\HPTEX
-\\def\\fmtname{\lftbr}HP TeX{\rtbr}\\def\\fmtversion{\lftbr}A.00.00{\rtbr}
-
-\% LEADERS
-\%
-\\def\\dotfil{\lftbr}\\tenrm\\leaders\\hbox to8\\p@{\lftbr}\\hss.\\hss{\rtbr}\\h
-
-\% CONSTANT VALUES
-\%
-\\chardef\\zer@=0
-\\chardef\\f@ur=4
-\\skipdef\\skip@ii=2
-\\maxdepth=2pt
-
-\\message{\lftbr}fonts,{\rtbr}
-
-\% FONTS \% NOTE 4
-\%
-\\let\\fontcheck=1 \% NOTE
-\\def\\fontdef#1=#2 {\lftbr}\\def#1{\lftbr}\\font@{\lftbr}#1{\rtbr}{\lftbr}#2{\r
-\\def\\font@#1#2{\lftbr}{\lftbr}\\let\\fontcheck=0\\ifx0\\fontcheck\\egroup\\glo
- \\else{\rtbr}\\string#1 \\fi{\rtbr}\%--The space after \\string#1 is necessa
-
-\% ROMAN TEXT
-\%
-\\fontdef\\twentyfourrm={\lftbr}amr10 scaled \\magstep5{\rtbr}
-\\fontdef\\eighteenrm={\lftbr}amr10 scaled \\magstep3{\rtbr}
-\\fontdef\\fourteenrm={\lftbr}amr10 scaled \\magstep2{\rtbr}
-\\font\\twelverm=amr10 scaled \\magstep1
-\%\\font\\tenrm=amr10
-\\font\\ninerm=amr9
-\\font\\eightrm=amr8
-\%\\font\\sevenrm=amr7
-\\font\\sixrm=amr6
-\%\\font\\fiverm=amr5
-
-\% MATH ITALIC
-\%
-\\fontdef\\twentyfouri={\lftbr}ammi10 scaled \\magstep5{\rtbr}
-\\fontdef\\eighteeni={\lftbr}ammi10 scaled \\magstep3{\rtbr}
-\\fontdef\\fourteeni={\lftbr}ammi10 scaled \\magstep2{\rtbr}
-\\fontdef\\twelvei={\lftbr}ammi10 scaled \\magstep1{\rtbr}
-\%\\font\\teni=ammi10
-\\fontdef\\ninei={\lftbr}ammi9{\rtbr}
-\\fontdef\\eighti={\lftbr}ammi8{\rtbr}
-\%\\font\\seveni=ammi7
-\\fontdef\\sixi={\lftbr}ammi6{\rtbr}
-\%\\font\\fivei=ammi5
-
-\% MATH SYMBOLS
-\%
-\\fontdef\\twentyfoursy={\lftbr}amsy10 scaled \\magstep5{\rtbr}
-\\fontdef\\eighteensy={\lftbr}amsy10 scaled \\magstep3{\rtbr}
-\\fontdef\\fourteensy={\lftbr}amsy10 scaled \\magstep2{\rtbr}
-\\fontdef\\twelvesy={\lftbr}amsy10 scaled \\magstep1{\rtbr}
-\%\\font\\tensy=amsy10
-\\fontdef\\ninesy={\lftbr}amsy9{\rtbr}
-\\fontdef\\eightsy={\lftbr}amsy8{\rtbr}
-\%\\font\\sevensy=amsy7
-\\fontdef\\sixsy={\lftbr}amsy6{\rtbr}
-\%\\font\\fivesy=amsy5
-
-\% BOLD MATH SYMBOLS
-\%
-\\fontdef\\tenbfsy={\lftbr}ambsy10{\rtbr}
-
-\% MATH EXTENSION
-\%
-\%\\font\\tenex=amex10
-
-\% SANS SERIF
-\%
-\\fontdef\\fourteenss={\lftbr}amss10 scaled \\magstep2{\rtbr}
-\\fontdef\\twelvess={\lftbr}amss10 scaled \\magstep1{\rtbr}
-\\font\\tenss=amss10
-\\font\\eightss=amssq8
-
-\% SANS SERIF ITALIC
-\%
-\\font\\tenitss=amssi10
-\\font\\eightitss=amssqi8
-
-\% BOLDFACE EXTENDED
-\%
-\\fontdef\\twentyfourbf={\lftbr}ambx10 scaled \\magstep5{\rtbr}
-\\fontdef\\eighteenbf={\lftbr}ambx10 scaled \\magstep3{\rtbr}
-\\fontdef\\fourteenbf={\lftbr}ambx10 scaled \\magstep2{\rtbr}
-\\font\\twelvebf=ambx10 scaled \\magstep1
-\%\\font\\tenbf=ambx10
-\\font\\ninebf=ambx9
-\\font\\eightbf=ambx8
-\%\\font\\sevenbf=ambx7
-\\font\\sixbf=ambx6
-\%\\font\\fivebf=ambx5
-
-\% TYPEWRITER
-\%
-\\fontdef\\twentyfourtt={\lftbr}amtt10 scaled \\magstep5{\rtbr}
-\\fontdef\\eighteentt={\lftbr}amtt10 scaled \\magstep3{\rtbr}
-\\fontdef\\fourteentt={\lftbr}amtt10 scaled \\magstep2{\rtbr}
-\\fontdef\\twelvett={\lftbr}amtt10 scaled \\magstep1{\rtbr}
-\%\\font\\tentt=amtt10
-\\font\\ninett=amtt9
-\\font\\eighttt=amtt8
-
-\% SLANTED TYPEWRITER
-\%
-\\font\\tensltt=amsltt10
-
-\% SLANTED ROMAN
-\%
-\\fontdef\\twentyfoursl={\lftbr}amsl10 scaled \\magstep5{\rtbr}
-\\fontdef\\eighteensl={\lftbr}amsl10 scaled \\magstep3{\rtbr}
-\\fontdef\\fourteensl={\lftbr}amsl10 scaled \\magstep2{\rtbr}
-\\fontdef\\twelvesl={\lftbr}amsl10 scaled \\magstep1{\rtbr}
-\%\\font\\tensl=amsl10
-\\font\\ninesl=amsl9
-\\font\\eightsl=amsl8
-
-\% TEXT ITALIC
-\%
-\\fontdef\\twentyfourit={\lftbr}amti10 scaled \\magstep5{\rtbr}
-\\fontdef\\eighteenit={\lftbr}amti10 scaled \\magstep3{\rtbr}
-\\fontdef\\fourteenit={\lftbr}amti10 scaled \\magstep2{\rtbr}
-\\fontdef\\twelveit={\lftbr}amti10 scaled \\magstep1{\rtbr}
-\%\\font\\tenit=amti10
-\\font\\nineit=amti9
-\\font\\eightit=amti8
-\\fontdef\\sevenit={\lftbr}amti7{\rtbr}
-
-\% UNSLANTED TEXT ITALIC
-\%
-\\font\\tenuit=amu10
-
-\% CAPS AND SMALL CAPS
-\%
-\\font\\tencsc=amcsc10
-
-\% SANS SERIF BOLD EXTENDED
-\%
-\\font\\tenbfss=amssbx10
-
-\% BOLD EXTENDED SLANTED
-\%
-\\font\\tenslbf=ambxsl10
-
-\% DUNHILL STYLE
-\%
-\\font\\tendh=amdunh10
-
-\% FOR TITLES
-\%
-\\font\\titlefont=amr7 scaled \\magstep4
-
-\% BIG FONT
-\%
-\\font\\bigfont=amssbx10 scaled \\magstep2
-
-\\message{\lftbr}macros,{\rtbr}
-
-\% MACROS TO SET FSTYLE \% NOTE 7
-\%
-\\def\\rm{\lftbr}\\fam\\z@\\def\\fstyle{\lftbr}rm{\rtbr}\\setfont{\rtbr}
-\\def\\it{\lftbr}\\fam\\itfam\\def\\fstyle{\lftbr}it{\rtbr}\\setfont{\rtbr}
-\\def\\bf{\lftbr}\\fam\\bffam\\def\\fstyle{\lftbr}bf{\rtbr}\\setfont\\ifmmode{\l
- \\textfont2=\\tenbfsy\\fi{\rtbr}
-\\def\\sl{\lftbr}\\fam\\slfam\\def\\fstyle{\lftbr}sl{\rtbr}\\setfont{\rtbr}
-\\def\\sa{\lftbr}\\def\\fstyle{\lftbr}ss{\rtbr}\\setfont{\rtbr}
-\\def\\tt{\lftbr}\\fam\\ttfam\\def\\fstyle{\lftbr}tt{\rtbr}\\setfont{\rtbr}
-
-\\newfam\\ssfam
-
-\vfil\goodbreak
-\% MACROS TO SET FSIZE \% NOTE 8
-\%
-\\def\\fivepoint{\lftbr}\\def\\fsize{\lftbr}five{\rtbr}\\setfont\\let\\sfont=\\f
- \\baselineskip7pt\%
- \\setbox\\strutbox=\\hbox{\lftbr}\\vrule height4.5pt depth1.5pt w
- \\textfont0=\\fiverm \\scriptfont0=\\fiverm\%
- \\scriptscriptfont0=\\fiverm\%
- \\textfont1=\\fivei \\scriptfont1=\\fivei\%
- \\scriptscriptfont1=\\fivei\%
- \\textfont2=\\fivesy \\scriptfont2=\\fivesy\%
- \\scriptscriptfont2=\\fivesy{\rtbr}
-\vfil\goodbreak
-
-\\def\\sixpoint{\lftbr}\\def\\fsize{\lftbr}six{\rtbr}\\setfont\\let\\sfont=\\fiv
- \\baselineskip8pt\%
- \\setbox\\strutbox=\\hbox{\lftbr}\\vrule height5pt depth2pt width
- \\textfont0=\\sixrm \\scriptfont0=\\fiverm\%
- \\scriptscriptfont0=\\fiverm\%
- \\scriptfont1=\\fivei \\scriptscriptfont1=\\fivei\%
- \\scriptfont2=\\fivesy \\scriptscriptfont2=\\fivesy\%
- \\def\\changes{\lftbr}{\lftbr}\\sixi\\sixsy{\rtbr}\%
- \\textfont1=\\sixi \\textfont2=\\sixsy{\rtbr}\%
- \\ifmmode\\changes\\else\\everymath{\lftbr}\\changes
- \\everydisplay{\lftbr}\\changes{\rtbr}\\fi{
-\vfil\goodbreak
-
-\\def\\sevenpoint{\lftbr}\\def\\fsize{\lftbr}seven{\rtbr}\\setfont\\let\\sfont=\
- \\baselineskip9pt\%
- \\setbox\\strutbox=\\hbox{\lftbr}\\vrule height6pt depth2pt wi
- \\textfont0=\\sevenrm \\scriptfont0=\\sixrm\%
- \\scriptscriptfont0=\\fiverm\%
- \\textfont1=\\seveni \\scriptscriptfont1=\\fivei\%
- \\textfont2=\\sevensy \\scriptscriptfont2=\\fivesy\%
- \\def\\changes{\lftbr}{\lftbr}\\sixi\\sixsy{\rtbr}\%
- \\scriptfont1=\\sixi\%
- \\scriptfont2=\\sixsy{\rtbr}\%
- \\ifmmode\\changes\\else\\everymath{\lftbr}\\changes{\rtbr}\%
- \\everydisplay{\lftbr}\\changes{\
-\vfil\goodbreak
-
-\\def\\eightpoint{\lftbr}\\def\\fsize{\lftbr}eight{\rtbr}\\setfont\\let\\sfont=\
- \\baselineskip9pt\%
- \\setbox\\strutbox=\\hbox{\lftbr}\\vrule height7pt depth2pt wi
- \\textfont0=\\eightrm \\scriptfont0=\\sixrm\%
- \\scriptscriptfont0=\\fiverm\%
- \\scriptscriptfont1=\\fivei\%
- \\scriptscriptfont2=\\fivesy\%
- \\def\\changes{\lftbr}{\lftbr}\\eighti\\sixi\\eightsy\\sixsy{\
- \\textfont1=\\eighti \\scriptfont1=\\sixi\%
- \\textfont2=\\eightsy \\scriptfont2=\\sixsy{\rtbr}\%
- \\ifmmode\\changes\\else\\everymath{\lftbr}\\changes{\rtbr}\%
- \\everydisplay{\lftbr}\\changes{\rtbr}\\fi{\r
-\vfil\goodbreak
-
-\\def\\ninepoint{\lftbr}\\def\\fsize{\lftbr}nine{\rtbr}\\setfont\\let\\sfont=\\s
- \\baselineskip11pt\%
- \\setbox\\strutbox=\\hbox{\lftbr}\\vrule height8pt depth3pt wi
- \\textfont0=\\ninerm \\scriptfont0=\\sevenrm\%
- \\scriptscriptfont0\\fiverm\%
- \\scriptfont1=\\seveni \\scriptscriptfont1\\fivei\%
- \\scriptfont2=\\sevensy \\scriptscriptfont2\\fivesy\%
- \\def\\changes{\lftbr}{\lftbr}\\ninei\\ninesy{\rtbr}\%
- \\textfont1=\\ninei\%
- \\textfont2=\\ninesy{\rtbr}\%
- \\ifmmode\\changes\\else\\everymath{\lftbr}\\changes{\
- \\everydisplay{\lftbr}\\changes{\rtbr}\\fi{\
-\vfil\goodbreak
-
-\\def\\tenpoint{\lftbr}\\def\\fsize{\lftbr}ten{\rtbr}\\setfont\\let\\sfont=\\sev
- \\baselineskip12pt\%
- \\setbox\\strutbox=\\hbox{\lftbr}\\vrule height8.5pt depth3.5pt
- \\textfont0=\\tenrm \\scriptfont0=\\sevenrm\%
- \\scriptscriptfont0\\fiverm\%
- \\textfont1=\\teni \\scriptfont1=\\seveni\%
- \\scriptscriptfont1\\fivei\%
- \\textfont2=\\tensy \\scriptfont2=\\sevensy\%
- \\scriptscriptfont2\\fivesy{\rtbr}
-\vfil\goodbreak
-
-\\def\\twelvepoint{\lftbr}\\def\\fsize{\lftbr}twelve{\rtbr}\\setfont\\let\\sfont
- \\baselineskip14pt\%
- \\setbox\\strutbox=\\hbox{\lftbr}\\vrule height10pt depth4pt w
- \\textfont0=\\twelverm \\scriptfont0=\\ninerm\%
- \\scriptscriptfont0=\\sevenrm\%
- \\scriptscriptfont1=\\seveni\%
- \\scriptscriptfont2=\\sevensy\%
- \\def\\changes{\lftbr}{\lftbr}\\twelvei\\ninei\\twelvesy\\nine
- \\textfont1=\\twelvei \\scriptfont1=\\ninei\%
- \\textfont2=\\twelvesy \\scriptfont2=\\ninesy{\rtbr}\
- \\ifmmode\\changes\\else\\everymath{\lftbr}\\changes{\rtbr}\%
- \\everydisplay{\lftbr}\\changes{\rtbr}\\fi{
-\vfil\goodbreak
-
-\\def\\fourteenpoint{\lftbr}\\def\\fsize{\lftbr}fourteen{\rtbr}\\setfont\\let\\s
- \\baselineskip16pt\%
- \\setbox\\strutbox=\\hbox{\lftbr}\\vrule height12pt depth4pt width0pt{\rtbr
- \\scriptfont0=\\tenrm \\scriptscriptfont0=\\sevenrm\%
- \\scriptfont1=\\teni \\scriptscriptfont1=\\seveni\%
- \\scriptfont2=\\tensy \\scriptscriptfont2=\\sevensy\%
- \\def\\changes{\lftbr}{\lftbr}\\fourteeni\\fourteenrm\\fourteensy{\rtbr}\%
- \\textfont0=\\fourteenrm\%
- \\textfont1=\\fourteeni\%
- \\textfont2=\\fourteensy{\rtbr}\%
- \\ifmmode\\changes\\else\\everymath{\lftbr}\\changes{\rtbr}\\everydisplay{\
-\vfil\goodbreak
-
-\\def\\eighteenpoint{\lftbr}\\def\\fsize{\lftbr}eighteen{\rtbr}\\setfont\\let\\s
- \\baselineskip18pt\%
- \\setbox\\strutbox=\\hbox{\lftbr}\\vrule height15pt depth3pt width0pt{\rtb
- \\scriptfont0=\\twelverm \\scriptscriptfont0=\\tenrm\%
- \\scriptscriptfont1=\\teni\%
- \\scriptscriptfont2=\\tensy\%
- \\def\\changes{\lftbr}{\lftbr}\\eighteenrm\\eighteeni\\twelvei\\eighteensy
- \\textfont0=\\eighteenrm\%
- \\textfont1=\\eighteeni \\scriptfont1=\\twelvei\%
- \\textfont2=\\eighteensy \\scriptfont2=\\twelvesy{\rtbr}\%
- \\ifmmode\\changes\\else\\everymath{\lftbr}\\changes{\rtbr}\%
- \\everydisplay{\lftbr}\\changes{\rtbr}\\fi{\rtbr}
-\vfil\goodbreak
-
-\\def\\twentyfourpoint{\lftbr}\\def\\fsize{\lftbr}twentyfour{\rtbr}\\setfont\\le
- \\baselineskip24pt\%
- \\setbox\\strutbox=\\hbox{\lftbr}\\vrule height21.5pt depth2.5pt width0pt{
- \\def\\changes{\lftbr}{\lftbr}\\twentyfourrm\\eighteenrm\\fourteenrm\\twen
- \\eighteeni\\fourteeni\\twentyfoursy\\eighteensy\\fourteensy
- \\textfont0=\\twentyfourrm \\scriptfont0=\\eighteenrm \%
- \\scriptscriptfont0=\\fourteenrm\%
- \\textfont1=\\twentyfouri \\scriptfont1=\\eighteeni\%
- \\scriptscriptfont1=\\fourteeni\%
- \\textfont2=\\twentyfoursy \\scriptfont2=\\eighteensy\%
- \\scriptscriptfont2=\\fourteensy{\rtbr}\%
- \\ifmmode\\changes\\else\\everymath{\lftbr}\\changes{\rtbr}\\everydisplay
-
-\vfil\goodbreak
-\% MACROS TO SET CURRENT FONT USING FSTYLE AND FSIZE
-\%
-\\newif\\ifnofont@
-\\def\\tryfont#1{\lftbr}\\expandafter\\ifx\\csname#1\\endcsname\\relax\\nofont@t
- \\else\\nofont@false\\csname#1\\endcsname\\fi{\rtbr}
-\\def\\setfont{\lftbr}\\tryfont{\lftbr}\\ffam\\fsize\\fstyle{\rtbr}\%
- \\ifnofont@\\tryfont{\lftbr}\\ffam\\fsize rm{\rtbr}\%
- \\ifnofont@\\tryfont{\lftbr}\\ffam tenrm{\rtbr}\%
- \\ifnofont@\\tenrm\\fi\\fi\\expandafter
- \\fonterr\\csname\\ffam\\fsize\\fstyle\\endcsname{\lftbr}\\the\\font{\rtbr}\
-\\def\\fonterr#1#2{\lftbr}\\immediate\\write\\m@ne{\lftbr}! font #1is undefined,
- I'm using #2instead.{\rtbr}\\xdef#1{\lftbr}#2{\rtbr}{\rtbr}
-
-\% DEFAULTS \% NOTE 1
-\%
-\\fam\\z@\\tenrm\\def\\ffam{\lftbr}{\rtbr}\\def\\fstyle{\lftbr}rm{\rtbr}\\def\\f
-
-\% LINE MACROS \% NOTE 1
-\%
-\\def\\lline#1{\lftbr}\\hbox to\\hsize{\lftbr}\\hskip\\leftskip#1\\hskip\\rights
-\\def\\leftline#1{\lftbr}\\lline{\lftbr}#1\\hss{\rtbr}{\rtbr}
-\\def\\rightline#1{\lftbr}\\lline{\lftbr}\\hss#1{\rtbr}{\rtbr}
-\\def\\centerline#1{\lftbr}\\lline{\lftbr}\\hss#1\\hss{\rtbr}{\rtbr}
-
-\% MORE MACROS
-\%
-\\def\\narrow#1{\lftbr}\\advance\\leftskip#1\\advance\\rightskip#1{\rtbr}
-\\def\\narrower{\lftbr}\\narrow\\parindent{\rtbr}
-\\def\\narrow@{\lftbr}\\narrow\\inset{\rtbr}
-\\def\\inc#1{\lftbr}\\advance#1\\@ne{\rtbr}
-\\def\\dec#1{\lftbr}\\advance#1\\m@ne{\rtbr}
-\\def\\ignore#1{\lftbr}\\relax{\rtbr}
-\\def\\okbreak{\lftbr}\\par\\penalty-200{\rtbr}
-\\def\\need{\lftbr}\\afterassignment\\need@\\dimen@{\rtbr}
-\\def\\need@{\lftbr}\\vskip\\dimen@ minus\\dimen@\\okbreak\\vskip-\\dimen@ minus
-\goodbreak
-\\def\\for#1=#2to#3do#4{\lftbr}#1=#2\\ifnum#2>#3\\else\\let\\next@=\\fnext@
- \\def\\fcount@{\lftbr}#1{\rtbr}\\def\\fexit@{\lftbr}#3{\rtbr}\\def\\floop@{\
-\goodbreak
-\\def\\fnext@{\lftbr}\\floop@\\ifnum\\fcount@<\\fexit@\\inc\\fcount@
- \\else\\let\\next@=\\relax\\fi\\next@{\rtbr}
-\goodbreak
-\\def\\super#1{\lftbr}\\/\\raise.4em\\hbox{\lftbr}\\sfont#1{\rtbr}\\thinspace{\r
-\\def\\sub#1{\lftbr}\\lower.25em\\hbox{\lftbr}\\sfont#1{\rtbr}\\thinspace{\rtbr}
-\\def\\lbreak{\lftbr}\\hfill\\break{\rtbr}
-\goodbreak
-\\def\\uline#1{\lftbr}\\setbox0=\\hbox{\lftbr}#1{\rtbr}\\dimen@=-\\dp0\\advance\
- \\ifvmode\\indent\\fi\\hbox to \\wd0{\lftbr}\\lower.27em
- \\vbox{\lftbr}\\box0\\vskip\\dimen@\\hrule height.04em{\rtbr}{\rtbr}{\rtbr}
-\goodbreak
-
-\% START AND FINISH GROUP STRUCTURE \% NOTE 1
-\%
-\\def\\start#1{\lftbr}\\errfalse\\ifinvalid@{\lftbr}#1{\rtbr}\\else\\begingroup
- \\def\\blockname@{\lftbr}#1{\rtbr}\\csname BEGIN#1\\endcsname\\fi\\Error{\rt
-\\def\\finish#1{\lftbr}\\errfalse\\ifinvalid@{\lftbr}#1{\rtbr}\\else\\matchup@{\
-\\def\\ifinvalid@#1{\lftbr}\\expandafter\\ifx\\csname BEGIN#1\\endcsname\\relax
- \\errset{\lftbr}I don't understand {\lftbr}#1{\rtbr}, it may be misspelled{\
-\\def\\matchup@#1{\lftbr}\\def\\test@{\lftbr}#1{\rtbr}\%
- \\expandafter\\ifx\\csname blockname@\\endcsname\\relax
- \\errset{\lftbr}Extra \\string\\finish{\lftbr}\\test@{\rtbr} ignored
- \\else\\ifx\\test@\\blockname@\\done
- \\else\\errset{\lftbr}Missing \\string\\finish{\lftbr}\\blockname@{\rtbr} in
- \\done\\matchup@{\lftbr}#1{\rtbr}\\fi\\fi{\rtbr}
-\\def\\done{\lftbr}\\csname END\\blockname@\\endcsname\\endgroup{\rtbr}
-
-\% GENERAL ERROR HANDLING \% NOTE 2
-\%
-\\def\\errfalse{\lftbr}\\global\\let\\iferr=\\iffalse{\rtbr}
-\\def\\errtrue{\lftbr}\\global\\let\\iferr=\\iftrue{\rtbr}
-\\def\\errset#1{\lftbr}\\iferr\\immediate\\write0{\lftbr}! \\error{\rtbr}\\else\
-\\def\\Error{\lftbr}\\iferr\\errmessage{\lftbr}\\error{\rtbr}\\fi{\rtbr}
-
-\% DATE AND TIME MACROS
-\%
-\\newcount\\cntA@\\newcount\\cntB@\\newcount\\cntC@
-\\def\\mon{\lftbr}\\ifcase\\month\\relax\\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{\rtbr}
-\\def\\date{\lftbr}\\mon\\nobreak\\ \\number\\day, \\number\\year{\rtbr}
-\goodbreak
-\\def\\hour{\lftbr}{\lftbr}\\cntA@=\\time \\cntB@=\\cntA@
- \\divide\\cntA@60 \\cntC@=\\cntA@ \\multiply\\cntC@60
- \\advance\\cntB@-\\cntC@\\ifnum\\cntA@>11
- \\advance\\cntA@-12 \\def\\time@{\lftbr}PM{\rtbr}\\else\\def\\time@{\lftbr}A
- \\ifnum\\cntA@=0 \\cntA@=12 \\fi\\number\\cntA@
- :\\ifnum\\cntB@<10 0\\fi\\number\\cntB@\\nobreak\\ \\time@{\rtbr}{\rtbr}
-
-\% INDENTSTYLE
-\%
-\\newdimen\\indentsize\\indentsize=20pt
-\\newif\\ifindent\\indenttrue \% NOTE
-\\def\\indentstyle{\lftbr}\\parindent\\indentsize
- \\ifindent\\else\\indenttrue\\advance\\parskip-5\\p@\\fi{\rtbr}
-\\def\\noindentstyle{\lftbr}\\parindent\\z@
- \\ifindent\\indentfalse\\advance\\parskip5\\p@\\fi{\rtbr}
-\\def\\indentspace{\lftbr}\\afterassignment\\indent@\\indentsize{\rtbr}
-\\def\\indent@{\lftbr}\\ifindent\\parindent\\indentsize\\fi{\rtbr}
-\\newdimen\\inset
-\\inset.5in
-\\def\\BEGINindent{\lftbr}\\advance\\leftskip \\inset{\rtbr}
-\\let\\ENDindent=\\par
-
-\% RAGGED MARGIN AND JUSTIFIED MARGIN MACROS
-\%
-\\def\\fixmargin@{\lftbr}\\dimen@=\\rightskip\\rightskip=\\dimen@{\rtbr}
-\\def\\justify{\lftbr}\\fixmargin@\\spaceskip\\z@\\xspaceskip\\z@{\rtbr}
-\\def\\raggedright{\lftbr}\\fixmargin@\\advance\\rightskip\\z@ plus2em
- \\ifx\\fstyle\\tt@\\else\\spaceskip.3333em\\xspaceskip.5em\\fi{\rtbr}
-\\def\\tt@{\lftbr}tt{\rtbr}
-
-\% ITEM AND SUBITEM MACROS
-\%
-\\newcount\\icount@\\newcount\\scount@
-\\newcount\\idigit@\\newcount\\sdigit@
-\\def\\itemset@#1#2#3{\lftbr}\\dimen@=\\hsize \\advance\\dimen@-#2\\inset
- \\parshape=\\@ne#1\\inset\\dimen@\\noindent
- \\hbox to\\z@{\lftbr}\\hss#3\\enspace{\rtbr}\\ignorespaces{\rtbr}
-\\def\\itemlist#1{\lftbr}\\medskip\\resetsubitems\\itemset@\\@ne\\tw@{\lftbr}#1{
-\\def\\subitem#1{\lftbr}\\smallskip\\itemset@\\tw@\\f@ur{\lftbr}#1{\rtbr}{\rtbr}
-\\def\\itempar{\lftbr}\\smallskip\\itemset@\\@ne\\tw@\\empty{\rtbr}
-\\def\\subitempar{\lftbr}\\subitem\\empty{\rtbr}
-\\def\\enditems{\lftbr}\\bigskip\\resetitems{\rtbr}
-
-\% ITEMTAG AND SUBITEMTAG MACROS \% NOTE 41
-\%
-\\def\\square{\lftbr}\\hbox{\lftbr}\\hskip.5pt\\vrule height.4em width.4em depth
-\\def\\dott{\lftbr}$\\bullet${\rtbr}
-\\def\\emdash{\lftbr}---{\rtbr}
-\\def\\itemn@#1{\lftbr}\\number#1\\global\\inc#1{\rtbr}
-\\def\\itemr@#1{\lftbr}\\romannumeral#1\\global\\inc#1{\rtbr}
-\\def\\itemR@#1{\lftbr}\\uppercase\\expandafter{\lftbr}\\romannumeral#1{\rtbr}\\
-\goodbreak
-\\def\\iteml@#1#2{\lftbr}{\lftbr}\\loop\\char#1\\ifnum#2>\\@ne\\dec#2\\repeat{\r
- \\ifnum#1>122 \\global#1=97 \\global\\inc#2\\fi \\ifnum#1=91 \\global#1=65
- \\global\\inc#2\\fi{\rtbr}
- \\def\\item@ #1,#2,#3{\lftbr}\\def\\itemtag{\lftbr}#3{\rtbr}\%
- \\def\\resetitems{\lftbr}\\global\\icount@=#1\\global\\idigit@=#2{\rtbr}\\res
-\\outer\\def\\numbereditems{\lftbr}\\item@ 1,0,{\lftbr}\\itemn@\\icount@{\rtbr}{
-\\outer\\def\\lettereditems{\lftbr}\\item@ 97,1,{\lftbr}\\iteml@\\icount@\\idigi
-\\outer\\def\\Lettereditems{\lftbr}\\item@ 65,1,{\lftbr}\\iteml@\\icount@\\idigi
-\\outer\\def\\romanitems{\lftbr}\\item@ 1,0,{\lftbr}\\itemr@\\icount@{\rtbr}{\rt
-\\outer\\def\\Romanitems{\lftbr}\\item@ 1,0,{\lftbr}\\itemR@\\icount@{\rtbr}{\rt
-\\outer\\def\\squareditems{\lftbr}\\let\\itemtag=\\square\\let\\resetitems=\\rel
-\\outer\\def\\dotteditems{\lftbr}\\let\\itemtag=\\dott\\let\\resetitems=\\relax{
-\\outer\\def\\dasheditems{\lftbr}\\let\\itemtag=\\emdash\\let\\resetitems=\\rela
-\\def\\itm{\lftbr}\\itemlist{\lftbr}\\tenrm\\itemtag\\ifx\\relax\\resetitems\\el
-
-\\def\\subitem@ #1,#2,#3{\lftbr}\\def\\subitemtag{\lftbr}#3{\rtbr}\%
- \\def\\resetsubitems{\lftbr}\\global\\scount@=#1\\global\\sdigit@=#2{\rtbr}\
-\\outer\\def\\numberedsubitems{\lftbr}\\subitem@ 1,0,{\lftbr}\\itemn@\\scount@{\
-\\outer\\def\\letteredsubitems{\lftbr}\\subitem@ 97,1,{\lftbr}\\iteml@\\scount@\
-\\outer\\def\\Letteredsubitems{\lftbr}\\subitem@ 65,1,{\lftbr}\\iteml@\\scount@\
-\\outer\\def\\romansubitems{\lftbr}\\subitem@ 1,0,{\lftbr}\\itemr@\\scount@{\rtb
-\\outer\\def\\Romansubitems{\lftbr}\\subitem@ 1,0,{\lftbr}\\itemR@\\scount@{\rtb
-\\outer\\def\\squaredsubitems{\lftbr}\\let\\subitemtag=\\square\\let\\resetsubit
-\\outer\\def\\dottedsubitems{\lftbr}\\let\\subitemtag=\\dott\\let\\resetsubitems
-\\outer\\def\\dashedsubitems{\lftbr}\\let\\subitemtag=\\emdash\\let\\resetsubite
-\\def\\sitm{\lftbr}\\subitem{\lftbr}\\tenrm\\subitemtag\\ifx\\relax\\resetsubite
- \% NOTE 49
-\\numbereditems\\letteredsubitems \% NOTE
-
-\% NOTE AND WARNING MACROS
-\%
-\\def\\BEGINnote{\lftbr}\\bigskip\\narrow@\\narrow@\\nobreak{\rtbr}
-\\let\\ENDnote=\\bigskip
-\\def\\BEGINwarning{\lftbr}\\bigskip\\nobreak\\narrow@\\narrow@\\marginrule.0266
- \\nobreak\\medskip\\nobreak{\rtbr}
-\\def\\ENDwarning{\lftbr}\\nobreak\\medskip\\nobreak\\marginrule.02667in \\bigsk
-\\def\\marginrule#1 {\lftbr}\\nointerlineskip\\vbox to#1{\lftbr}\\vss
- \\lline{\lftbr}\\leaders\\hrule height#1\\hss{\rtbr}{\rtbr}{\rtbr}
-
-
-\% VERBATIM MODE \% NOTE 5
-\%
-\\newskip\\blanksize@
-\\bgroup\\catcode`\\*=3 \\catcode`\\$=13 \\catcode`\\#=13
- \\catcode`\\^=13 \\catcode`\\_=13 \\catcode`\\|=13 \\catcode`\\~=13
-\goodbreak
-\\gdef\\BEGINverbatim{\lftbr}\\parskip=0pt plus1pt
- \\catcode`\\$=13 \\def${\lftbr}\\indent\\hbox to \\the\\fontdimen\\tw@\\the\
- {\lftbr}\\hss\\$\\hss{\rtbr}{\rtbr}
- \\catcode`\\&=12
- \\catcode`\\#=13 \\def#{\lftbr}\\indent\\hbox to \\the\\fontdimen\\tw@\\the\
- {\lftbr}\\hss*\\#*\\hss{\rtbr}{\rtbr}
- \\catcode`\\^=13 \\def^{\lftbr}\\indent\\hbox to \\the\\fontdimen\\tw@\\the\
- {\lftbr}\\hss*\\mathchar"327D*\\hss{\rtbr}{\rtbr}
- \\catcode`\\_=13 \\def_{\lftbr}\\indent\\hbox to \\the\\fontdimen\\tw@\\the\
- {\lftbr}\\hss\\_\\hss{\rtbr}{\rtbr}
- \\catcode`\\\%=12
- \\catcode`\\|=13 \\def|{\lftbr}\\indent\\hbox to \\the\\fontdimen\\tw@\\the\
- {\lftbr}\\hss*\\mathchar"326A*\\hss{\rtbr}{\rtbr}
- \\catcode`\\~=13 \\def~{\lftbr}\\indent\\hbox to \\the\\fontdimen\\tw@\\the\
- {\lftbr}\\hss*\\mathchar"3218*\\hss{\rtbr}{\rtbr}
- \\parindent\\z@\\lumplines\\lumpspaces{\rtbr}
-\\egroup
-
-\% LUMPLINE AND LUMPSPACE MACROS \% NOTE 5
-\%
-{\lftbr}\\catcode`\\^^M=13 \\gdef\\lumplines{\lftbr}\\catcode`\\^^M=13 \\let^^M=
-\\def\\lumpline@{\lftbr}\\par\\skip@=\\z@\\let\\munch@=\\lumpB@\\futurelet\\lump
-\\def\\lumpA@{\lftbr}\\ifx\\lumpline@\\lump@\\advance\\skip@\\baselineskip
- \\else\\let\\munch@=\\relax\\vskip\\skip@\\fi\\munch@{\rtbr}
-\\def\\lumpB@#1{\lftbr}\\futurelet\\lump@\\lumpA@{\rtbr}
-{\lftbr}\\catcode`\\ =13 \\gdef\\lumpspaces{\lftbr}\\catcode`\\ =13\\relax\\let
-\goodbreak
-\\def\\lumpspace@{\lftbr}\\blanksize@=\\the\\fontdimen\\tw@\\the\\font
- \\skip@=\\z@\\let\\munch@=\\lumpb@\\futurelet\\lump@\\lumpa@{\rtbr}
-\goodbreak
-\\def\\lumpa@{\lftbr}\\advance\\skip@\\blanksize@\\ifx\\lumpspace@\\lump@
- \\else\\let\\munch@=\\relax\\hskip\\skip@\\fi\\munch@{\rtbr}
-\\def\\lumpb@#1{\lftbr}\\futurelet\\lump@\\lumpa@{\rtbr}
-\\let\\munch@=\\relax
-
-\% PAGE CONTROL MACROS \% NOTE 5
-\%
-\\def\\newpage{\lftbr}\\balance\\ifold@\\null\\vfill\\eject\\fi{\rtbr}
-\\def\\evenpage{\lftbr}\\newpage\\ifodd\\pageno\\null\\vfill\\eject\\fi{\rtbr}
-\\def\\oddpage{\lftbr}\\newpage\\ifodd\\pageno\\else\\null\\vfill\\eject\\fi{\rt
-
-\% HEADING AND FOOTING MACROS \% NOTE 57
-\%
-\\newtoks\\leftheading \\newtoks\\leftfooting
-\\newtoks\\rightheading \\newtoks\\rightfooting
-\\newtoks\\centerheading \\newtoks\\centerfooting
-\\newtoks\\insideheading \\newtoks\\insidefooting
-\\newtoks\\outsideheading \\newtoks\\outsidefooting
-\\newtoks\\headline \\newtoks\\footline
-\goodbreak
-\\def\\buildline{\lftbr}\\let\\lft=\\zer@\\let\\rght=\\@ne
- \\ifdim\\wd3=\\z@\\else\\ifodd\\pageno\\let\\lft=\\thr@@\\else\\let\\rght=\\
- \\ifdim\\wd4=\\z@\\else\\ifodd\\pageno\\let\\rght=\\f@ur\\else\\let\\lft=\\f
- \\triplehead\\lft\\tw@\\rght{\rtbr}
-\goodbreak
-\\def\\triplehead#1#2#3{\lftbr}\\skip@=1em\\skip@ii=1em
- \\dimen@=\\wd#1\\advance\\dimen@-\\wd#3\%
- \\ifdim\\dimen@>\\z@\\advance\\skip@ii\\dimen@ minus\\dimen@
- \\else\\advance\\skip@-\\dimen@ minus-\\dimen@\\fi
- {\lftbr}\\box#1\\hskip\\skip@\\hfil\\box#2\\hfil\\hskip\\skip@ii\\box#3{\rtb
-\goodbreak
-\\def\\loadbox#1#2{\lftbr}\\setbox#1=\\hbox{\lftbr}\\the#2{\rtbr}{\rtbr}
-\\newcount\\headcount\\newcount\\footcount
-\\def\\suspendheading#1{\lftbr}\\global\\headcount=#1{\rtbr}
-\\def\\suspendfooting#1{\lftbr}\\global\\footcount=#1{\rtbr}
-\\def\\noheading{\lftbr}\\suspendheading\\m@ne{\rtbr}
-\\def\\nofooting{\lftbr}\\suspendfooting\\m@ne{\rtbr}
-\\def\\resumeheading{\lftbr}\\suspendheading\\zer@{\rtbr}
-\\def\\resumefooting{\lftbr}\\suspendfooting\\zer@{\rtbr}
-\goodbreak
-\\headline{\lftbr}\\ifnum\\headcount=\\z@\\loadbox\\tw@\\centerheading
- \\loadbox\\zer@\\leftheading\\loadbox\\@ne\\rightheading
- \\loadbox\\thr@@\\insideheading\\loadbox\\f@ur\\outsideheading\\buildlin
- \\else\\hfil\\ifnum\\headcount>\\z@\\global\\dec\\headcount\\fi\\fi{\rtbr}
-\goodbreak
-\\footline{\lftbr}\\ifnum\\footcount=\\z@\\loadbox\\tw@\\centerfooting
- \\loadbox\\zer@\\leftfooting\\loadbox\\@ne\\rightfooting
- \\loadbox\\thr@@\\insidefooting\\loadbox\\f@ur\\outsidefooting\\buildlin
- \\else\\hfil\\ifnum\\footcount>\\z@\\global\\dec\\footcount\\fi\\fi{\rtbr}
-\goodbreak
-\\resumeheading
-\\resumefooting
-\% footline is normally a centered page number in font \\tenrm
-\\centerfooting{\lftbr}\\tenrm\\folio{\rtbr}
-
-\% BOX MACROS
-\%
-\\newdimen\\boxline
-\\newdimen\\boxspace
-\\boxline .01332in
-\\boxspace 5pt
-\\newdimen\\depthbox@
-\\def\\boxit#1{\lftbr}\\hbox{\lftbr}\\vrule width\\boxline
- \\vbox{\lftbr}\\hrule height\\boxline\\kern\\boxspace
- \\hbox{\lftbr}\\kern\\boxspace
- \\vbox{\lftbr}\\halign{\lftbr}\\hfil##\\hfil\\cr\\st
- \\kern\\boxspace{\rtbr}\%
- \\kern\\boxspace\\hrule height\\boxline{\rtbr}\%
- \\vrule width\\boxline{\rtbr}{\rtbr}
-\\def\\centerbox#1{\lftbr}\\vskip\\abovedisplayskip
- \\centerline{\lftbr}\\boxit{\lftbr}#1{\rtbr}{\rtbr}\%
- \\vskip\\belowdisplayskip{\rtbr}
-\\def\\textbox#1{\lftbr}\\depthbox@=\\dp\\strutbox\\advance\\depthbox@ by .4\\p@
- \\ifvmode\\indent\\fi\\setbox\\z@\\hbox{\lftbr}\\vrule
- \\vbox{\lftbr}\\hrule\\hbox{\lftbr}\\kern\\p@#1\\strut\\kern\\p@{\rtbr}\
- \\vrule{\rtbr}\\lower\\depthbox@\\box\\z@{\rtbr}
-
-\% HP2680A and HP2688A COPY CONTROL MACROS \% NOTE 66
-\%
-\\newcount\\oldcopy\\newcount\\copycnt
-\\def\\copy@{\lftbr}\\globalspecial{\lftbr}HP2688A,HP2680A COPIES \\number\\copy
-\\def\\selectcopycount{\lftbr}\\afterassignment\\copy@\\copycnt{\rtbr}
-\\def\\copieson{\lftbr}\\global\\count\\copycnt=\\oldcopy\\copy@{\rtbr}
-\\def\\copiesoff{\lftbr}\\global\\count\\copycnt=1 \\copy@{\rtbr}
-\\def\\copies{\lftbr}\\afterassignment\\copieson\\global\\oldcopy{\rtbr}
-\\copycnt=1
-\\oldcopy=2
-
-\% HP2680A and HP2688A LOGICAL PAGE CONTROL (LPC) MACROS \% NOTE 6
-\%
-\\def\\lplist#1{\lftbr}\\globalspecial{\lftbr}HP2688A,HP2680A ILP #1{\rtbr}{\rtb
-\\def\\lpdef#1{\lftbr}\\globalspecial{\lftbr}HP2688A,HP2680A LP #1{\rtbr}{\rtbr}
-\\newif\\ifempty@\\empty@true
-\\newcount\\lpcount@\\newcount\\nextlp@
-\\def\\selectlpcounter#1{\lftbr}\\lpcount@#1 \\setlpcount@{\lftbr}\\the\\lpcount
-\\def\\setlpcount@#1{\lftbr}\\globalspecial{\lftbr}HP2688A,HP2680A ELP #1{\rtbr}
-\\def\\lpageto{\lftbr}\\eject\\afterassignment\\lpeject@\\nextlp@{\rtbr}
-\\def\\ppageto{\lftbr}\\eject\\afterassignment\\lpage@\\nextlp@{\rtbr}
-\\def\\lpeject@{\lftbr}\\nextlp@=-\\nextlp@\\lpage@{\rtbr}
-\\def\\lpresume{\lftbr}\\eject\\nextlp@=\\z@\\lpage@{\rtbr}
-\\def\\lpreset{\lftbr}\\eject\\nextlp@=33 \\lpage@ \\nextlp@=\\z@{\rtbr}
-\\def\\lpexit{\lftbr}\\eject\\nextlp@=34 \\lpage@ \\nextlp@=\\z@{\rtbr}
-\\def\\lpage@{\lftbr}\\ifempty@\\count\\lpcount@=\\nextlp@\\global\\empty@false\
-\\everyjob{\lftbr}\\message{\lftbr}Using HP TeX Version \\fmtversion{\rtbr}\\se
-
-\% TABLE MACROS \% NOTE 6
-\%
-\\newcount\\maxcol@
-\\newbox\\topstrutbox \\def\\topstrut{\lftbr}\\unhcopy\\topstrutbox{\rtbr}
-\\setbox\\topstrutbox=\\hbox{\lftbr}\\vrule height11pt depth0pt width0pt{\rtbr}
-\\newbox\\botstrutbox \\def\\botstrut{\lftbr}\\unhcopy\\botstrutbox{\rtbr}
-\\setbox\\botstrutbox=\\hbox{\lftbr}\\vrule height0pt depth4pt width0pt{\rtbr}
-\\newdimen\\tableline \\tableline.01332in
-\\newskip\\tablespace \\tablespace5pt
-\\def\\paragraph#1{\lftbr}\\vbox{\lftbr}\\hrule height\\z@ width\\hsize depth\\z
-\\def\\tbar{\lftbr}\\ifvmode\\hrule\\else\\vrule width\\hsize depth\\z@\\fi heig
-\\def\\uptoks@{\lftbr}\\inc\\cntA@\\inc\\cntB@
- \\ifnum\\cntA@<\\count19 \\ifnum\\cntB@<\\count19 \\else\\err@\\fi\\else\\er
-\\def\\err@{\lftbr}\\errmessage{\lftbr}Columns too wide for tabular format{\rtbr
-\\def\\bump@{\lftbr}\\ifnum\\cntC@<\\maxcol@\\inc\\cntC@\\uptoks@\\fi{\rtbr}
-\\def\\tableformat#1{\lftbr}\\tablelet\\just@\\just@\\relax\\parse@#1~\\done@~{\
-\\def\\tablerow#1{\lftbr}\\tablelet\\bbar@\\wbar@\\endrow@\\parse@#1~\\done@~{\r
-\\def\\tablebar#1{\lftbr}{\lftbr}\\let\\topstrut\\relax\\let\\botstrut\\relax\\t
- \\tablerow{\lftbr}#1{\rtbr}{\rtbr}{\rtbr}
-\\def\\tablelet#1#2#3{\lftbr}\\let\\b@#1\\let\\w@#2\\let\\f@#3\\cntA@\\count15 \
- \\cntC@\\z@\\let\\parse@=\\parseline@\\ifhmode\\par\\else\\nointerlineskip\\
- \% NOTE 74
-\\def\\just@#1{\lftbr}\\let\\b@\\tform@\\let\\w@\\tform@\\maxcol@\\z@\\let\\tabl
- \% NOTE 75
-\\def\\tform@#1{\lftbr}\\tform@@#1~{\rtbr}
-\\def\\tform@@#1#2~{\lftbr}\\uptoks@\\toks\\cntA@{\lftbr}#1{\rtbr}\\dimen\\cntB@
-\\def\\bbar@#1{\lftbr}\\beginrow@{\lftbr}#1{\rtbr}\\vrule width\\tableline\\vrul
-\\def\\wbar@#1{\lftbr}\\beginrow@{\lftbr}#1{\rtbr}\\kern\\tableline\\vrule width
-\\def\\beginrow@#1{\lftbr}\\let\\b@\\vbar@\\let\\w@\\ibar@\\setbox\\z@=\\hbox\\b
- \\parindent\\z@\\leftskip\\tablespace\\rightskip\\tablespace\\let\\span=\\sp
-\\def\\endrow@{\lftbr}\\kern-\\dimen\\cntB@\\egroup\\tablejust@{\lftbr}\\unhbox\
-\\def\\vbar@#1{\lftbr}\\futurelet\\lookahead@\\cs@#1~\\vrule width\\tableline{\r
-\\def\\ibar@#1{\lftbr}\\futurelet\\lookahead@\\cs@#1~\\kern\\tableline{\rtbr}
-\\def\\cs@#1~{\lftbr}\\ifx\\span@\\lookahead@#1~\\else\\span@\\@ne#1~\\fi\\lower
- \% NOTE 84
-\\def\\parseline@#1~{\lftbr}\\ifx\\done@#1\\let\\parse@\\f@\\else\\let\\p@ss\\pa
- \\p@ss#1|\\done@|\\fi\\parse@{\rtbr}
-\\def\\parsecol@#1|{\lftbr}\\def\\parsemode@{\lftbr}\\ifx\\done@\\lookahead@\\w@
- \\let\\p@ss\\lastp@ss\\else\\b@{\lftbr}#1{\rtbr}\\fi\\p@ss{\rtbr}\%
- \\futurelet\\lookahead@\\parsemode@{\rtbr}
-\\def\\lastp@ss#1|{\lftbr}{\rtbr}
-\\def\\span@#1#2~{\lftbr}\\bump@\\hsize\\dimen\\cntB@\\edef\\x@{\lftbr}\\the\\to
- \\for\\count@=2to#1do\%
- {\lftbr}\\bump@\\advance\\hsize\\dimen\\cntB@\\advance\\hsize\\tableline
- \\setbox\\z@=\\x@{\lftbr}\\topstrut#2\\botstrut{\rtbr}{\rtbr}
-
-\% SECTION AND HEADING MACROS \% NOTE 8
-\%
-\\newcount\\basehead\\basehead=\\count10
-\\advance\\count10by4 \% This allocates 4 counters for head counters
-\\newcount\\hdlevel
-\\def\\setlevelno#1{\lftbr}\\hdlevel=0 \\cntA@=\\basehead\\sethead@0#1.-1.\\head
-\\def\\sethead@#1.{\lftbr}\\ifnum-1=#1 \\let\\next@=\\relax\\else\\let\\next@=\\
- \% NOTE 90
- \\ifnum\\hdlevel<4 \\inc\\hdlevel\\inc\\cntA@\\count\\cntA@=#1\\fi\\fi\\next
-\goodbreak
-\\def\\head#1{\lftbr}\\ifnum#1>\\hdlevel\\uplevel@{\lftbr}#1{\rtbr}\\else
- \\hdlevel=#1\\cntA@=#1\\advance\\cntA@\\basehead\\fi
- \\inc{\lftbr}\\count\\cntA@{\rtbr}\\head@{\rtbr}
-\goodbreak
-\\def\\uplevel@#1{\lftbr}\\inc\\hdlevel\\cntA@=\\hdlevel
- \\advance\\cntA@\\basehead\\count\\cntA@=0
- \\ifnum\\hdlevel=#1 \\else\\uplevel@{\lftbr}#1{\rtbr}\\fi{\rtbr}
-\goodbreak
-\\def\\head@{\lftbr}{\lftbr}\\inc\\basehead\\xdef\\levelno{\lftbr}\\the\\count\\
- \\for\\cntB@=\\tw@ to\\hdlevel do{\lftbr}\\inc\\basehead
- \\xdef\\levelno{\lftbr}\\levelno.\\the\\count\\basehead{\rtbr}{\rtbr}{\r
-\goodbreak
-\\setlevelno{\lftbr}0{\rtbr}
-\\newtoks\\firstlevelhead \\def\\headA@{\lftbr}\\head\\@ne\\the\\firstlevelhea
-\\newtoks\\secondlevelhead \\def\\headB@{\lftbr}\\head\\tw@\\the\\secondlevelhe
-\\newtoks\\thirdlevelhead \\def\\headC@{\lftbr}\\head\\thr@@\\the\\thirdlevelh
-\\newtoks\\fourthlevelhead \\def\\headD@{\lftbr}\\head\\f@ur\\the\\fourthlevelh
-\\def\\level#1#2{\lftbr}\\def\\title{\lftbr}#2{\rtbr}\%
- \\ifcase#1\\relax\\or\\headA@\\or\\headB@\\or\\headC@\\or\\headD@\\fi{\rtbr}
-\\firstlevelhead{\lftbr}\\vfill\\eject\\vbox to1.5in{\lftbr}{\rtbr}\\centerline{
- \\vskip1.0in\\ctswrite{\lftbr}\\vrule height20pt width0pt\\tenbf\\title{\rtb
-\\secondlevelhead{\lftbr}\\need.75in\\bigskip\\leftline{\lftbr}\\twelvebf\\level
- \\medskip\\ctswrite{\lftbr}\\hskip15pt\\tenrm\\title{\rtbr}{\rtbr}
-\\thirdlevelhead{\lftbr}\\need.6in\\medskip\\leftline{\lftbr}\\tenbf\\levelno\\e
- \\ctswrite{\lftbr}\\hskip30pt\\tenrm\\title{\rtbr}{\rtbr}
-\\fourthlevelhead{\lftbr}\\need.5in\\leftline{\lftbr}\\tenrm\\levelno\\enspace\\
- \\ctswrite{\lftbr}\\hskip45pt\\tenrm\\title{\rtbr}{\rtbr}
-
-\% CONTENTS FILE MACROS
-\%
-\\newwrite\\cnts@
-\\newif\\ifnocts@\\nocts@true
-\\newtoks\\topofcontents
-\\newtoks\\botofcontents
-\\let\\content@=\\let\% \% NOTE
-\\def\\ctswrite#1{\lftbr}\\ifnocts@\\openout\\cnts@=\\jobname*[*]. \\nocts@false
- {\lftbr}\\def\\_{\lftbr}\\kern.06em \\vbox{\lftbr}\\hrule width.3em{\rtbr}{\
- \\edef\\a@{\lftbr}\\write\\cnts@{\lftbr}\\content@{\lftbr}#1{\rtbr}{\lftbr}\
-{\lftbr}\\catcode`\\@=12 \\gdef\\content@ #1#2{\lftbr}\\need.5in\\lline{\lftbr}#
-\\def\\contents{\lftbr}\\ifnocts@\\else\\closeout\\cnts@\\null\\supereject
- \\begingroup\\pageno\\m@ne\\null\\the\\topofcontents\\input\\jobname*.
- \\the\\botofcontents\\eject\\endgroup\\nocts@true\\fi{\rtbr}
-\\topofcontents{\lftbr}\\noheading\\vskip1in plus1fil
- \\centerline{\lftbr}\\fourteenbf Table of Contents{\rtbr}\\vskip1in plus1fil
-\\botofcontents{\lftbr}\\vfil{\rtbr}
-
-\% FOOTNOTES AND INSERTIONS
-\%
-\\def\\vfootnote#1{\lftbr}\\insert\\footins\\bgroup
- \\interlinepenalty\\interfootnotelinepenalty
- \\splittopskip\\ht\\strutbox \% top baseline for broken footnotes
- \\splitmaxdepth\\dp\\strutbox \\floatingpenalty\\@MM
- \\realhsize\\leftskip\\z@skip \\rightskip\\z@skip
- \\baselineskip1\\baselineskip
- \\textindent{\lftbr}#1{\rtbr}\\footstrut\\futurelet\\next\\fo@t{\rtbr}
-\\newcount\\notenumber
-\\def\\resetnotes{\lftbr}\\global\\notenumber=0 {\rtbr}
-\\def\\note{\lftbr}\\global\\inc\\notenumber\\footnote{\lftbr}$^{\lftbr}\\the\\n
-\\def\\midinsert{\lftbr}\\@midtrue\\p@gefalse\\@ins{\rtbr}
-\\def\\@ins{\lftbr}\\par\\begingroup\\setbox\\z@\\vbox\\bgroup\\realhsize\\divid
- \% NOTE 102
-\goodbreak
-\\def\\endinsert{\lftbr}\\egroup\\count@-100 \% finish the \\vbox
- \\ifp@ge\\else\\dimen@\\ht\\z@\\advance\\dimen@\\dp\\z@
- \\advance\\dimen@12\\p@\\multiply\\dimen@-\\nocol@
- \\advance\\dimen@-\\pagetotal\\advance\\dimen@\\pagegoal
- \\ifdim\\dimen@<\\z@\\@midfalse\\else\\count@100 \\fi\\fi
- \goodbreak
- \\if@mid \\balance@
- \\global\\setbox\\contrb@\\vbox{\lftbr}\\unvbox\\contrb@\\bigskip\\box\\z@
- \\else\\insert\\topins{\lftbr}\\penalty\\count@ \% floating insertion
- \\splittopskip\\z@skip\\splitmaxdepth\\maxdimen\\floatingpenalty\\z@
- \\ifp@ge \\divide\\vsize\\nocol@ \\dimen@\\dp\\z@
- \\vbox to\\vsize{\lftbr}\\unvbox\\z@\\kern-\\dimen@{\rtbr}\% depth is zero
- \\else \\box\\z@\\nobreak\\bigskip\\fi{\rtbr}\\fi\\endgroup{\rtbr}
-\goodbreak
-
-\% COLUMN MACROS \% NOTE 104
-\%
-\\def\\BEGINtwocolumns{\lftbr}\\multicol@\\tw@{\rtbr}
-\\def\\BEGINthreecolumns{\lftbr}\\multicol@\\thr@@{\rtbr}
-\\def\\ENDtwocolumns{\lftbr}\\balance@\\goal@\\divide\\endgroup\\newtotal@\\begi
-\\let\\ENDthreecolumns=\\ENDtwocolumns
-\\def\\balance{\lftbr}\\balance@\\newtotal@{\rtbr}
-\\def\\balance@{\lftbr}\\par{\lftbr}\\let\\ifreal@=\\iffalse\\eject{\rtbr}{\rtbr
-\\def\\newtotal@{\lftbr}{\lftbr}\\each@{\lftbr}\\the\\toks\\count@{\rtbr}
- \\ifold@\\insert\\hacker@{\lftbr}{\rtbr}\\prevtotal@\\pagetotal-\\dimen@\\fi
-\\def\\multicol@#1{\lftbr}\\ifnum\\nocol@>\\@ne\\errset{\lftbr}You can't have co
- within columns. \\string\\start{\lftbr}\\blockname@{\rtbr} ignored{\rtbr
- \\else\\balance@\\nocol@=#1\\goal@\\multiply\\advance\\hsize\\columnspace
- \\divide\\hsize#1\\advance\\hsize-\\columnspace
- \\multiply\\vsize#1\\brokenpenalty\\z@
- \\each@{\lftbr}\\multiply\\count\\count@\\nocol@\\multiply\\skip\\count@\\no
- \\newtotal@\\global\\dimen@=\\baselineskip\\baselineskip\\dimen@ plus\\dimen
-
-\\message{\lftbr}output routines{\rtbr}
-
-\% OUTPUT ROUTINES \% NOTE 10
-\%
-\\newbox\\contrb@ \\newbox\\out@
-\\newdimen\\columnspace
-\\columnspace=.5in
-\\let\\ifreal@=\\iftrue
-\\newcount\\nocol@ \\nocol@=1
-\\newinsert\\hacker@
-\\def\\ifold@{\lftbr}\\ifvoid\\contrb@\\else{\rtbr}
-\\def\\ifcol@{\lftbr}\\ifnum\\nocol@=\\@ne\\setbox\\out@=\\box\\@cclv \\else{\rt
-\\def\\setboxA@{\lftbr}\\inc\\cntA@\\setbox\\cntA@{\rtbr}
-\\def\\boxA@{\lftbr}\\inc\\cntA@\\box\\cntA@{\rtbr}
-\\def\\each@#1{\lftbr}\\for\\count@=\\count19 to254 do{\lftbr}#1{\rtbr}{\rtbr}
-\\def\\unglue@#1{\lftbr}\\setbox#1=\\vbox{\lftbr}\\unvbox#1{\rtbr}{\rtbr}
-\\def\\realhsize{\lftbr}\\advance\\hsize\\columnspace\\multiply\\hsize\\nocol@
- \\advance\\hsize-\\columnspace{\rtbr}
-\\output{\lftbr}\\hpoutput{\rtbr}
-
-\goodbreak
-\\def\\hpoutput{\lftbr}\\splittopskip=\\topskip
- \\setbox\\hacker@=\\box\\voidb@x
- \\ifvoid\\contrb@\\dimen@=\\ht\\@cclv
- \\else\\prevtotal@\\advance\\dimen@\\ht\\@cclv\\fi
- \\ifreal@\\realoutput@\\else\\fakeoutput@\\fi
- \\each@{\lftbr}\\global\\toks\\count@\\ifvoid\\count@{\lftbr}{\rtbr}\\else{\
-
-\\def\\realoutput@{\lftbr}\\ifcol@\\splitcol@\\split@\\setheight@\\setout@
- \\unvbox\\@cclv \\penalty\\outputpenalty\\fi
- \\setbox\\@cclv=\\pagestuff@{\lftbr}{\rtbr}\\each@{\lftbr}\\divide\\skip\\co
- \\realhsize\\divide\\vsize\\nocol@\\leftskip\\z@\\rightskip\\z@
- \\plainoutput\\global\\empty@true
- \\global\\count\\lpcount@=\\nextlp@\\ifnum\\nextlp@>32 \\global\\nextlp@\\z@
-
-\\def\\fakeoutput@{\lftbr}\\unglue@{\lftbr}\\@cclv{\rtbr}\\global\\let\\ifreal@=
- \\ifcol@\\dimen@=\\baselineskip
- \\dimen@=\\ifnum\\nocol@>2 2\\dimen@ \\else 1.1667\\dimen@ \\fi
- \\advance\\dimen@\\ht\\@cclv\\splitcol@{\lftbr}\\box\\@cclv{\rtbr}\\set
- \\dimen@=\\dp\\out@\\global\\setbox\\contrb@=\\pagestuff@{\lftbr}\\vskip-\\
-
-\\def\\makeheadline{\lftbr}\\vbox to\\z@{\lftbr}\\vskip-22.5\\p@
- \\lline{\lftbr}\\vbox to8.5\\p@{\lftbr}{\rtbr}\\the\\headline{\rtbr}\\vss{\rtb
-\\def\\makefootline{\lftbr}\\baselineskip24\\p@\\lline{\lftbr}\\the\\footline{\r
-
-\\def\\pagecontents{\lftbr}\\ifvoid\\topins\\else\\unvbox\\topins\\fi
- \\unvbox\\@cclv \% open up \\box255
- \\ifvoid\\footins\\else \% footnote info is present
- \\vskip\\skip\\footins
- \\footnoterule
- \\unvbox\\footins\\fi
- \\ifr@ggedbottom\\vfil\\fi{\rtbr}
-
-\\def\\splitcol@#1{\lftbr}\\divide\\dimen@\\nocol@\\cntA@=\\count14
- \\for\\count@=\\tw@ to\\nocol@ do{\lftbr}\\setboxA@=\\split@{\rtbr}\\setboxA
-\\def\\split@{\lftbr}\\ifvoid\\@cclv\\vbox{\lftbr}\\lline\\hfil\\vfil{\rtbr}\\el
-\\def\\setheight@{\lftbr}\\ifold@\\setmax@\\fi{\rtbr}
-\\def\\pagestuff@#1{\lftbr}\\vbox{\lftbr}\\ifold@\\unvbox\\contrb@\\medskip\\fi\
-\\def\\setout@{\lftbr}\\cntA@=\\count14 \\setbox\\out@=\\vbox{\lftbr}\\hbox
- {\lftbr}\\for\\count@=\\tw@ to\\nocol@ do{\lftbr}\\boxA@\\hskip\\columnspace
-\\def\\setmax@{\lftbr}\\dimen@=\\z@ \\cntA@=\\count14
- \\for\\count@=\\@ne to\\nocol@ do{\lftbr}\\inc\\cntA@\\unglue@{\lftbr}\\cntA
- \\ifdim\\ht\\cntA@>\\dimen@ \\dimen@=\\ht\\cntA@\\fi{\rtbr}\%
- \\for\\count@=\\@ne to\\nocol@ do{\lftbr}\\setbox\\cntA@
- =\\vbox to\\dimen@{\lftbr}\\unvbox\\cntA@\\ifr@ggedbottom\\vss\\fi{\rtbr
-\\def\\prevtotal@{\lftbr}\\dimen@=\\medskipamount
- \\advance\\dimen@\\ht\\contrb@\\multiply\\dimen@-\\nocol@{\rtbr}
-\\def\\goal@#1{\lftbr}\\ifdim\\pagegoal=\\maxdimen\\else
- \\dimen@=\\pagegoal#1\\dimen@\\nocol@\\pagegoal\\dimen@\\fi{\rtbr}
-
-
-\\catcode`@=12 \% NOTE 112
-\finish{verbatim}
-\bye