...\"
...\" Copyright (c) 1990,1991, OPEN SOFTWARE FOUNDATION, INC.
...\" ALL RIGHTS RESERVED
...\"
...\" $Header: /project/docsrc/src/macros/RCS/rsml,v 1.14 91/12/31 14:04:09 fred Exp $
...\"
...\"
...\"
...\"
...\"
...\"
...\"	*********************************************
...\"	OSF Reference Semantic Markup Language Macros
...\"	*********************************************
...\"
...\"
...\"
...\"
...\"
...\"
...\"
...\"	MM, MAN, & requests supported in RSML set
...\"	=========================================
...\"
...\" .TH Top head in reference page (MAN)
...\" .SH Text head in reference page (MAN)
...\" .SS Subhead in reference page (MAN)
...\" .TB Table title (MM/MAN)
...\" .T& Table continue (MM/MAN)
...\" .TS Start table (MM/MAN)
...\" .TE End table	 (MM/MAN)
...\" .FG Figure title (MM/MAN)
...\" .PS pic drawing start (MM/MAN)
...\" .PE pic drawing end (MM/MAN)
...\" .EC Equation caption (MM/MAN)
...\" .EN End equation (MM/MAN)
...\" .EQ Start equation (MM/MAN)
...\" .EX Exhibit caption (MM)
...\" .P Paragraph (MM)
...\" .PP Paragraph (MAN macro; we add to MM)
...\" .RS Start reference region (MM) (removed from rsml)
...\" .RF End reference region (MM) (removed from rsml)
...\" .OK Key words (MM)
...\"
...\" .ds Define string for expansion
...\" .ne Reserve x lines on one page (takes arg 'x')
...\"
...\"
...\"	Macros Supported in DTE
...\"	=======================
...\" .iX Index entry
...\"
...\"
...\"
...\"	NOT IN USE NOW (TO BE ADDED LATER)
...\"	==================================
...\" .AS start abstract (MM, not in use now)
...\" .AE end abstract (MM, not in use now)
...\" .AT title	(MM, not in use now)
...\" .AU author's names (MM, not in use now)
...\" .AF company name (MM, not in use now)
...\" .nP numbered paragraph (MM, not in use now)
...\" .RL reference list (MM, not in use now)
...\" .TL title of memoranda (MM, not in use now)
...\" .MT memorandum (MM, not in use now)
...\"
...\"
...\"
...\"
...\"   Rename the -man .RS/.RE to .rS/.rE for rsml use
.rn RS rS
.rn RE rE
...\"
...\"
...\"
...\"
...\"	Macros Delimiting Titled Elements of a Document
...\"	-----------------------------------------------
...\"
...\" Top head in reference page (Note: this differs from gpsml .TH)
...\" lmui hasn't fixed this yet.
.de tH
..
...\"
.am TH
.|Y TH "\\$1"         \" make sure lists inactive
..
.am SH
.|Y SH "\\$1"
..
.am SS
.|Y SS "\\$1"
..
...\"
...\"
...\"
...\"
...\"
...\"   Lists
...\"   =====
...\"
...\" variable use (where <L> means # for the current list level):
...\"
...\" number registers:
...\" 	Ll			the current list level (see <L> below)
...\"	$A          the current AL list level
...\"	$M			the current ML list level
...\"	$V			the current VL list level
...\"
...\"	%<L>		indent width for list
...\"	#<L>		list item # in some format
...\"
...\" strings:
...\"	%<L>		mark for list
...\"   #<L>		type of this list (M, V, or A)
...\"
...\"
...\"  initializations:
.nr Ll 0 1	\" no lists active
.nr $A 0 1	\" no lists active
.nr $M 0 1	\" no lists active
.nr $V 0 1	\" no lists active
...\"
...\"
...\" Checker -- call |Y when all lists should be inactive.  Gives a
...\" warning message when they aren't, and resets the list down..
.de |Y
.if \\n(Ll>0 \{\
.	tm unterminated list (no .LE) -- noticed by the .\\$1 "\\$2"
.	nr Ll 0
'	br \}
..
...\"
...\"
...\"
...\" Make paragraph spacing correct inside of lists (just use .sp
...\" when in a nested context -- Ll = list, Nn = note region).
...\"
.rn PP P#
...\"
.de PP
.ie (\\n(Ll>0):(\\n(Nn>0) .sp \\n(PDu
.el .P#
..
...\"
...\"
...\"
...\"
...\" Start nonsequential invariant list
...\"
...\"
.de ML
.SP
.nr $M +1	\" another 'M' level
.if \\n(Ll>0 .rS \\n(%\\n(Llu
.nr Ll +1
...\" set mark indent to work for both troff & nroff
.nr %\\n(Ll .5i
.ie \\n($M=1 .ds %\\n(Ll \(bu
.el \{\
.	ie t .ds %\\n(Ll \(em
.	el .ds %\\n(Ll --
'	br \}
.ie n .ds %\\n(Ll "\ \ \\*(%\\n(Ll
.el .ds %\\n(Ll "\ \ \ \ \ \ \ \\*(%\\n(Ll
.nr #\\n(Ll 0 1
.ds #\\n(Ll M\" we're in a marked list
..
...\"
...\"
...\" Start nonsequential variant list
...\"
...\"
.de VL
.SP
.nr $V +1	\" another level
.if \\n(Ll>0 .rS \\n(%\\n(Llu
.nr Ll +1
.ie \\$1 .nr %\\n(Ll 1i\" default when no indent provided
.el .nr %\\n(Ll \\$1n
.ds #\\n(Ll V\" we're in a variable list
..
...\"
...\"
...\" Start seqential invariant list
...\"
...\"
.de AL
.SP
.nr $A +1
.if \\n(Ll>0 .rS \\n(%\\n(Llu
.nr Ll +1
.nr %\\n(Ll .5i
.ie \\n($A=1 .af #\\n(Ll 1
.el .ie \\n($A=2 .af #\\n(Ll a
.el .af #\\n(Ll i
.nr #\\n(Ll 0 1
.ds %\\n(Ll \\\\\\\\\\\\\\\\n+(#\\n(Ll
.ie n .ds %\\n(Ll "\ \\*(%\\n(Ll
.el .ds %\\n(Ll "\ \ \ \ \ \\*(%\\n(Ll
.ds #\\n(Ll A\" within an auto list
..
...\" List item
.de LI
.SP .25
...\"
...\" test & process for 'V' list
.ie \\*(#\\n(LlV \{\
.	IP "\\$1" \\n(%\\n(Llu
'	br \}
...\"
...\" test & process for 'M' list
.el .ie \\*(#\\n(LlM \{\
.	IP \\*(%\\n(Ll \\n(%\\n(Llu
'	br \}
...\"
...\" otherwise, do an 'A' list, using a "." separator
.el .IP \\*(%\\n(Ll. \\n(%\\n(Llu
..
...\"
...\" End of list
.de LE
...\" decrement list level counter made in 'A', 'M', 'V' lists
.ie \\*(#\\n(LlA \{\
.	nr $A -1
.	nr Ll -1
.	if \\n(Ll>0 .rE
'	in \\n(%\\n(Llu+\\n()Ru+\\n(INu
'	br \}
.el .ie \\*(#\\n(LlV \{\
.	nr $V -1
.	nr Ll -1
.	if \\n(Ll>0 .rE
'	in \\n(%\\n(Llu+\\n()Ru+\\n(INu
'	br \}
.el .if \\*(#\\n(LlM \{\
.	nr $M -1
.	nr Ll -1
.	if \\n(Ll>=0 .rE
'	in \\n(%\\n(Llu+\\n()Ru+\\n(INu
'	br \}
.SP
..
...\"
...\"
...\"
...\"
...\"	Captions:  figure, table, equation, and exhibit
...\"
...\"	-mm defines these, but not -man.  We here define equivalents
...\"	for the -man based pages.  They generate TOC info as well as
...\"	the caption info in the running text.
...\"
...\"
.de FG	\" Figures
.)F Figure 0 \\n+(Fg "\\$1"
..
...\"
.de TB	\" Tables
.)F Table 1 \\n+(Tb "\\$1"
..
...\"
.de EC	\" Equations
.)F Equation 2 \\n+(Ec "\\$1"
..
...\"
.de EX	\" Exhibits
.)F Exhibit 3 \\n+(Ex "\\$1"
..
...\"
...\"
...\"	Now, the generalized output routines
.de )F
.sp \\n(PDu
.ce 1
\\$1\ \\n(H1\(mi\\$3.\ \ \\$4
.sp \\n(PDu
...\" only put out TOC info if in book-format (number reg |Z = 1)
.if \\n(|Z=1 .tm !TOC: .if \\$2=\\\\\\\\$1 .)T 1 1 "\\$1\ \\n(H1\(mi\\$3.\ \ " "\\$4" \\nP \\n(H1
..
...\"
...\"
...\"	Generalized, accumulating output spacer...
.de SP
.br
.nr |Q \\n(PDu
.if \\n(.$ .nr |Q \\$1v
.if !(\\n(nl=\\n(|B) .nr |A 0
.nr |Q -\\n(|Au
.if \\n(|Q \{\
.	sp \\n(|Qu
.	nr |A +\\n(|Qu
'	br \}
.nr |B \\n(nl
..
...\"
...\"
