.\" print this document using "tbl filename |sroff -ms"
.nr LL 6.5i
.ad
.ds S SROFF
.ds N NROFF
.ds T TROFF
.ds LH \*S Reference Manual
.ds CH
.ds RH %
.rm CM
.ds CF
.TL
SROFF Reference Manual
.AU
Michael Karels
.AI
Department of Molecular Biology
University of California, Berkeley
.SH
Introduction
.PP
\*S is a text processor similar to \*N and \*T
that formats text for a Sanders Media 12/7 printer.
It accepts the same input as \*N/\*T
and in general has the same defaults and actions as \*T,
within the capabilities of the printer,
except as noted here.
See the \*N/\*T user's manual for a complete discussion of
formatting requests.
.SH
Invocation
.PP
.B sroff
[ option ] ...
[ file ] ...
.LP
.I sroff
formats text in the named
.I files.
If no
.I file
argument is present, the standard input is read.
An argument consisting of a single minus
(\|\fB\-\fR\|)
is taken to be
a file name corresponding to the standard input.
The options, which may appear in any order so long as they appear
before the files, are:
.nr @t \w'\f3\-m\f1name 'u
.in \n(@tu
.de @T
.sp \\n(PDu
.ti -\\n(@tu
\\$1\\h'\\n(@tu-\\w*\\$1*u'\c
..
.@T \fB\-o\fIlist\fR
Print only pages whose page numbers appear in
the comma-separated
.I list
of numbers and ranges.
A range
\fIN\|-\|M\fR
means pages
.I N
through
\fIM\fR;
an initial
.I -N
means
from the beginning to page
\fIN\fR;
and a final
\fIN\fR\-
means
from
.I N
to the end.
.@T \fB\-n\fIN\fR
Number first generated page
\fIN\fR.
.@T \fB\-m\fIname\fR
Prepend the macro file
\fB/usr/lib/tmac/tmac.\fIname\fR
to the input
\fIfiles\fR.
.@T \fB\-r\fIaN\fR
Set register
.I a
(one-character) to
\fIN\fR.
.@T \fB\-i\fR
Read standard input after the input files are exhausted.
.@T \fB\-q\fR
Invoke the simultaneous input-output mode of the
.B rd
request.
.@T \fB\-F\fIname\fR
Mount set of fonts
.I name.
This option is dependent on the fonts mounted in the printer.
Examples are
.B H10
for Helvesan 10 point Regular and Italic and
.B M12
for Messenger 12 (underlining when in font 2).
See Table II for other options.
.@T \fB\-d\fR
Use draft mode, substituting fast-printing draft fonts whenever
available.
.@T \fB\-c\fR
Set up for continuous (roll or fanfold) paper.
In particular, no top margin is generated by the printer.
.@T \fB\-t\fR
Direct output to the standard output instead
of the printer.
.@T \fB\-nroff\fR
Define
.B n
rather than
.B t
to emulate
.I nroff.
This can be useful for making macro packages work as with
.I nroff.
Tab stops are set at 0.8 inches instead of 0.5 inches.
.@T \fB\-w\fR
Wait until printer is available, if
currently busy.
.@T \fB\-b\fR
Report whether the printer
is busy or available.
No text processing is done.
.@T \fB\-z\fR
Suppress output, just produce any diagnostic messages.
.@T \fB\-S\fR
Notify the user when printing finishes.
Used when
.I sroff
is run in background.
.in 0
.ta
.SH
Differences Between \*S and \*N/\*T
.NH
General Introduction
.PP
The following sections will describe the differences between
\*N and \*S.
The sections and their numbering correspond to those in
the \*N/\*T User's Manual.
In most cases where \*S is different from \*T,
it is identical to \*N.
Font handling, emboldening, local motions and small spaces
are similar to those of \*T.
.PP
Numerical input to \*S is similar to input to \*T.
\*S uses 1000 units/inch internally,
corresponding to the Sanders units of mils.
The horizontal resolution is 1 mil,
the vertical resolution is 3.5 mils.
Otherwise, the scale indicators for numerical input are as for \*T.
In the following table, \fIS\fR is the size of the current font in points
(set in mounting the fonts with the \fB-F\fR option)
and \fIV\fR is the current vertical line spacing in units.
.br
.ne 3i
.TS
center;
ccl
ccl
cll.
_
Scale		Number of basic units
Indicator	Meaning	in \*S
_
\fBi\fR	Inch	1000
\fBc\fR	Centimeter	1000\(mu50\(sl127
\fBP\fR	Pica = 1\(sl6 inch	167
\fBm\fR	Em = \fIS\fR points	\fIS\fR\(mu1000\(sl72 (\(ap14\(mu\fIS\fR)
\fBn\fR	En = Em\(sl2	\fIS\fR\(mu500\(sl72 (\(ap7\(mu\fIS\fR)
\fBp\fR	Point = 1\(sl72 inch	1000\(sl72 (\(ap14)
\fBu\fR	Basic unit	1
\fBv\fR	Vertical line space	\fIV\fR
none	Default
_
.TE
.NH
Font and Character Size Control
.PP
The fonts and character set of \*S are a subset of those mounted in the
printer.
The configuration is specified in the \fB-F\fR option upon
invocation of \*S.
Normally, font 1 (`R') is a Helvesan Regular font and font 2 (`I')
is the corresponding Helvesan Italic;
font 3 (`B') is the same as font 1 but is emboldened by 6 mils.
Font 4 (`S') is the Scientific font and font 8 (`G') is the Greek/Math
font.
There are normally 8 available font positions;
it is possible to configure the program with 16 fonts.
The underline font is normally undefined (0);
if no italic font is mounted by the \fB-F\fR option,
the underline font is font 2 (see also \fB.uf\fR, section 10).
The special character set is essentially that of \*T,
within the limitations of the Scientific and Greek/Math fonts.
Special characters have names of the form \fB\\(\fIxx\fR.
A complete list of available characters and their names is in Table 1.
Other characters in those fonts can be used by explictly changing to
the appropriate font.
.PP
Font changes are accomplished by the request \fB.ft \fIF\fR, where
\fIF\fR is the one-character name or number of the desired font, as in \*T,
or by embedding \fB\\f\fIF\fR.
(If there are more than 9 fonts, \fB\ef(\fIxx\fR can be used to specify
fonts 10-16 numerically.) 
The request \fB.bd \fIF N\fR specifies that font \fF\fR is to be emboldened
by overstriking at an offset of \fIN\fR mils;
a value of \fI0\fR turns off emboldening.
.NH
Page control
.PP
Page control is the same as for \*N except for the top and left margins.
The printer has a default top margin of 1/2 inch which cannot be
decreased if the single-sheet paper feeder is used.
Any attempt to print in the top 1/2 inch of the page will result in
printing below the 1/2-inch hard margin and will affect the calculation 
of the page length.
The \fB-c\fP option turns off this mode of handling the top margin
for use with roll or fanfold paper.
Otherwise, the top margin is handled normally.
.PP
The default page offset is 1 inch, which is the printer's default.
The \fB.po\fP command will change the printer page offset change the
left margin.
.NH
Text Filling, Adjusting, and Centering
.PP
Text filling, adjusting and centering are handled in the same manner
as with \*T.
Both proportional and nonproportional fonts can be right-justified.
.NH
Vertical Spacing
.PP
The default vertical spacing is 1/6 inch.
.NH
Line Length and Indenting
.PP
These are normally the same as in \*N/\*T.
However, the printer has a default line length of 7 inches.
\*S will increase this limit if the line length or title length
is set to more than 7 inches, but never decreases the
printer's limit.
If lines longer than the printer's current line length
are printed in nofill mode, the printer will wrap them around to
the next line, wrapping at the last space before the line end.
To print lines longer than 7 inches in nofill mode,
set the printer's line length to a value greater than or equal to
the desired length by using the \fB.ll\fP command to
set the line length to the longest line length you expect,
then change it back to the correct value.
.NH
Macros, Strings, Diversion, and Position Traps
.PP
These are the same as in \*N/\*T.
.NH
Number Registers
.PP
Number registers are handled the same as in \*N/\*T.
.NH
Tabs, Leaders, and Fields
.PP
Tab stops are initially set every 0.5 inches,
unless the
.B \-nroff
option is used, in which case tabs are every 0.8 inches.
These otherwise are the same as in \*N/\*T.
.NH
Input and Output Conventions and Character Translations; Underlining
.PP
There is no default underline font in \*S if there is an italic font mounted.
Otherwise, font 2 is the underline font.
Rather than changing to the underline font,
\&\fB\.ul \fIN\fR underlines the next \fIN\fR lines
in the \fIcurrent\fR font.
\&\fB.cu \fIN\fR underlines all characters including punctuation as in \*N,
except that spaces are not underlined.
.R
The underline font may be changed with \fB.uf \fIF\fR.
Subsequent changes to font \fIF\fR will produce underlined text in font 1.
The request \fB.uf 0\fR restores the previous underline font to its
original usage (italics, etc.).
.NH
Local Horizontal and Vertical Motions, and the Width Function
.PP
\*S does local motions in the same way as \*T.
\fB\\v\fI'N'\fR and \fB\\h\fI'N'\fR specify vertical and horzontal motions,
respectively, of distance \fIN\fR.
Large motions upwards (negative vertical motion) may not work
with some paper feeders.
\fB\\u\fR, \fB\\d\fR, and \fB\\r\fR are motions of 1/2 em down,
1/2 em up, and 1 em up.
\fB\\\fR(space) produces an unpaddable space (which is wider on the Sanders
printer than on most other devices).
\fB\\0\fR is a digit-sized space, \fB\\|\fR is a 1/6 em narrow space,
and \fB\\^\fR is a 1/12 em space.
.NH
Overstrike, Bracket, Line-drawing, and Zero-width Functions
.PP
These functions perform the same functions as in \*T.
The vertical line-drawing function \eL is sometimes inaccurate,
however, and it may not be possible to make well-formed
boxes around tables because of this.
The problem is due to the large number of small motions involved.
There is an additional function that is useful for output of printer
control commands that do not print or cause motions, for example
setting options.
.ti 5m
\fB\\E\fI'string'\fR
.br
will send \fIstring\fR to the printer,
treating \fIstring\fR as having no width.
.NH
Three Part Titles
.PP
Three-part titles are like those of \*N/\*T.
.NH
Output Line Numbering
.PP
This is the same as in \*N/\*T.
.NH
Conditional Acceptance of Input
.PP
Conditional expressions are the same as in \*T.
The built-in condition \fBt\fR is \fItrue\fR, \fBn\fR is \fIfalse\fR.
In addition, \fBs\fR is also defined to be true.
.NH
Environment Switching
.PP
This is the same as in \*N/\*T.
.NH
Insertions from the Standard Input
.PP
This is the same as in \*N/\*T.
.NH
Input/Output File Switching
.PP
This is the same as in \*N.
\&\fB\.pi\fR works as in \*N, as if the \fB-t\fR option and a pipe
had been used.
.NH
Miscellaneous
.PP
The requests in this section are the same as for \*N/\*T.
.NH
Output and Error Messages
.PP
These are the same as in \*T.
.NH
Other Considerations
.PP
Since \*S appears as \*T to macro packages (\fBt\fR is defined),
some actions may not be appropriate.
In particular, printing cut marks intended for the phototypesetter
makes a mess of the top margin.
Using the \fB-ms\fR macros, this can be suppressed by including the line
.ti 5m
\&\fB.rm CM\fR
.br
at the beginning of the input file.
Similarly, using \fB-me\fR, remove the macro \fB@m\fR.
For a permanent fix, the macro packages can be modified to test \fBs\fP:
.in 0.5i
\&\fB.if t .if !s \fR(print cut marks)
.sp \n(.tu-0.5i
\l'1.5i'
.br
This document was formatted with \*S on \*(DY.
.bp
.de mx
.nf
.ftI
.ta .35iC +.45i +.45i 3.25iC +.45i +.45i
	Sanders	Input	Character	Sanders	Input	Character
	Output	Name	Name	Output	Name	Name
.ftR
.sp.2
..
.nf
.ft B
.ce
Table I
.sp
.ce3
Input Naming Conventions for \', \`,and  \-
and for Non-ASCII Special Characters
Available in \*S
.sp .5i
.ftB
.bd I 6
Non-ASCII characters and \fIminus\fP on the standard fonts in \*T.
.sp
.mx
	\&'	\'	close quote	\(sq	\e(sq	square
	`	\`	open quote	\(ru	\e(ru	rule
	\(em	\e(em	3\(sl4 Em dash	\(de	\e(de	degree
	-	\-	hyphen or	\(dg	\e(dg	dagger
	\(hy	\e(hy	hyphen	\(fm	\e(fm	foot mark
	\-	\e\-	current font minus
.sp 2
.ftB
Other Non-ASCII characters and \', \`, \_\|, \(pl, \(mi, \(eq, and \(**.
.ftR
.sp
.mx
	\(pl	\e(pl	math plus	\(*f	\\(*f	phi
	\(mi	\e(mi	math minus	\(*x	\\(*x	chi
	\(eq	\e(eq	math equals	\(*q	\\(*q	psi
	\(**	\e(**	math star	\(*w	\\(*w	omega
	\(aa	\\(aa	acute accent	\(*A	\\(*A	Alpha
	\(ga	\\(ga	grave accent	\(*B	\\(*B	Beta
	\(ul	\\(ul	underrule	\(*G	\\(*G	Gamma
	\(sl	\\(sl	slash	\(*D	\\(*D	Delta
	\(*a	\\(*a	alpha	\(*E	\\(*E	Epsilon
	\(*b	\\(*b	beta	\(*Z	\\(*Z	Zeta
	\(*g	\\(*g	gamma	\(*Y	\\(*Y	Eta
	\(*d	\\(*d	delta	\(*H	\\(*H	Theta
	\(*e	\\(*e	epsilon	\(*I	\\(*I	Iota
	\(*z	\\(*z	zeta	\(*K	\\(*K	Kappa
	\(*y	\\(*y	eta	\(*L	\\(*L	Lambda
	\(*h	\\(*h	theta	\(*M	\\(*M	Mu
	\(*i	\\(*i	iota	\(*N	\\(*N	Nu
	\(*k	\\(*k	kappa	\(*C	\\(*C	Xi
	\(*l	\\(*l	lambda	\(*O	\\(*O	Omicron
	\(*m	\\(*m	mu	\(*P	\\(*P	Pi
	\(*n	\\(*n	nu	\(*R	\\(*R	Rho
	\(*c	\\(*c	xi	\(*S	\\(*S	Sigma
	\(*o	\\(*o	omicron	\(*T	\\(*T	Tau
	\(*p	\\(*p	pi	\(*U	\\(*U	Upsilon
	\(*r	\\(*r	rho	\(*F	\\(*F	Phi
	\(*s	\\(*s	sigma	\(*X	\\(*X	Chi
	\(*t	\\(*t	tau	\(*Q	\\(*Q	Psi
	\(*u	\\(*u	upsilon	\(*W	\\(*W	Omega
.bp
.mx
	\(sr	\\(sr	square root	\(cu	\\(cu	cup (union)
	\(rn	\\(rn	root en extender	\(ca	\\(ca	cap (intersection)
	\(>=	\\(>=	>=	\(sb	\\(sb	subset of
	\(<=	\\(<=	<=	\(sp	\\(sp	superset of
	\(==	\\(==	identically equal	\(ib	\\(ib	improper subset
	\(~=	\\(~=	approx =	\(ip	\\(ip	improper superset
	\(ap	\\(ap	approximates	\(if	\\(if	infinity
	\(!=	\\(!=	not equal	\(pd	\\(pd	partial derivative
	\(->	\\(\(mi>	right arrow	\(gr	\\(gr	gradient
	\(<-	\\(<\(mi	left arrow	\(pt	\\(pt	proportional to
	\(ua	\\(ua	up arrow	\(br	\\(br	box vertical rule
	\(da	\\(da	down arrow	\(dd	\\(dd	double dagger
	\(mu	\\(mu	multiply	\(or	\\(or	or
	\(di	\\(di	divide	\(ci	\\(ci	circle
	\(+-	\\(+\(mi	plus-minus
.vs 1.3v
	\(lt	\\(lt	left top of big curly bracket
.sp .2
	\(lb	\\(lb	left bottom
	\(rt	\\(rt	right top
.sp .2
	\(rb	\\(rb	right bottom
	\(lk	\\(lk	left center of big curly bracket
	\(rk	\\(rk	right center of big curly bracket
	\(bv	\\(bv	bold vertical
	\(lf	\\(lf	left floor (left bottom of big square bracket)
	\(rf	\\(rf	right floor (right bottom)
	\(lc	\\(lc	left ceiling (left top)
	\(rc	\\(rc	right ceiling (right top)
.vs 1i/6u
.sp 1
.ta .8iC +.45i 3.7iC +.45i
.ft B
Special Sanders commands
.ft R
.sp .2
	\e(nu	null (is not output)	\e(#y	insert space
	\e(bs	backspace	\e(#U	half-line feed
	\e(ht	horizontal tab	\e(#F	negative line feed
	\e(fl	line feed	\e(#D	negative half-line feed
	\e(ff	form feed	\e(#n	select format
	\e(cr	carriage return	\e(#e	set line length
	\e(es	escape	\e(#g	set indent
		Sanders control sequences:	\e(#w	set word spacing
	\e(#a	select font	\e(#i	set form length
	\e(#s	repeat character	\e(#t	toggle draft mode
	\e(#x	insert sequence of characters
.fi
.sp .5
Most of the Sanders control sequences require arguments;
see the printer manual.
.bp
.ft B
.ce
Table II
.sp
.ce3
Sets of fonts mounted by -F options
.sp .5
.PP
The availability of these options and fonts within them
depends on the fonts resident in the printer, and is thus
subject to local variation.
.TS
center;
cB cB cB cB
lB cB c l.
option	font name	font number	corresponding font
.sp .5
-FH10	R	1	Helvesan 10 Regular
(\fIdefault\fR)	I	2	Helvesan 10 Italic
	B	3	Helvesan 10 Regular, emboldened
	S	4	Scientific
	M	5	Messenger 12
	G	8	Greek/Math
.sp .5
-FM12	R	1	Messenger 12
	I	2	Messenger 12, underlined
	B	3	Messenger 12, emboldened
	S	4	Scientific
	G	8	Greek/Math
.sp .5
-FMI	R	1	Messenger 12
	I	2	Helvesan 10 Italic
	B	3	Messenger 12, emboldened
	S	4	Scientific
	G	8	Greek/Math
.sp .5
-FH8	R	1	Helvesan 8 Regular
	I	2	Helvesan 8 Regular, underlined
	B	3	Helvesan 8 Regular, emboldened
	S	4	Scientific
	G	8	Greek/Math
.TE