summaryrefslogtreecommitdiff
path: root/macros/hptex/hpmanual.tex
blob: b7765294941a0e471568a639bd6bce15f096d64a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
% 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