% 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