...\"
...\" Copyright (c) 1990,1991, OPEN SOFTWARE FOUNDATION, INC.
...\" ALL RIGHTS RESERVED
...\"
...\" $Header: /project/docsrc/src/macros/RCS/gpsml,v 1.12 91/12/29 17:41:11 fred Exp $
...\"
...\"
...\"
...\"	***************************************************
...\"	OSF General Purpose Semantic Markup Language Macros
...\"	***************************************************
...\"
...\"
...\"
...\"	MM, MAN, and requests supported in GPSML set
...\"	============================================
...\"
...\" .P Paragraph (MM)
...\" .PP Paragraph (MAN, added to MM)
...\" .ML Start nonsequential invariant list (MM) (osf version)
...\" .VL Start nonsequential variant list (MM)
...\" .AL Start sequential invariant list (MM)
...\" .LI List item (MM)
...\" .LE End of list (MM)
...\" .H Header (MM)
...\" .TB Table Title (MM)
...\" .T& Table continue (MM)
...\" .TS Start Table (MM)
...\" .TE End Table (MM)
...\" .TH Table header ends (MM)
...\" .FG Figure title (MM)
...\" .PS pic drawing start (MM)
...\" .PE pic drawing end (MM)
...\" .EC Equation caption (MM)
...\" .EN End equation (MM)
...\" .EQ Start equation (MM)
...\" .EX Exhibit caption (MM)
...\" .FS Start footnote region(MM)
...\" .FE End footnote region (MM)
...\" .RS Start reference region (MM)
...\" .RF End reference region (MM)
...\" .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
...\"
...\"
...\"	Macros Defining Overall Document Structure
...\"	-----------------------------------------
...\"
...\"____________________________________________________________________
...\" Appendix begins--   OBSOLETE
...\"
.de zS
.tm the .zS/.zE markup is obsolete -- please use the APPENDIX keyword
..
...\" Appendix ends-- OBSOLETE
.de zE
.tm the .zS/.zE markup is obsolete -- please use the APPENDIX keyword
..
...\"
...\" Title page begins-- OBSOLETE
.de xS
.tm the .xS/.xE markup is obsolete -- please use the appropriate template
..
...\" Title page ends-- OBSOLETE
.de xE
.tm the .xS/.xE markup is obsolete -- please use the appropriate template
..
...\"
...\" Disclaimer (copyright) page begins
...\"
.de yS
.tm the .yS/.yE markup is obsolete -- please use the appropriate template
..
...\" Disclaimer (copyright) page ends
.de yE
.tm the .yS/.yE markup is obsolete -- please use the appropriate template
..
...\"
...\" Preface-- OBSOLETE
...\"
...\"
.de qS
.tm the .qS/.qE markup is obsolete -- please use the PREFACE keyword
..
...\"
...\" Preface ends-- OBSOLETE
...\"
.de qE
.tm the .qS/.qE markup is obsolete -- please use the PREFACE keyword
..
...\"
...\"	Glossary (wordlist) begins-- OBSOLETE
...\"
.de wS
.tm the .wS/.wE markup is obsolete -- glossaries are automatically generated
..
...\"
...\"
...\" Glossary (wordlist) ends-- OBSOLETE
...\"
.de wE
.tm the .wS/.wE markup is obsolete -- glossaries are automatically generated
..
...\"
...\"____________________________________________________________________
...\"
...\"
...\"
...\"
...\"	"Part" macros -- document structuring that groups chapters
...\"
.de pA
.nr !_ 1
.SK
.rs
.sp |2.9i
.ie \\n(|D=1 \{\
...\"	DRAFT mode format
.	ps 24
.	vs 22
.	ti 0
.	B "Part \\$1.  \\$2"
.	sp -.65v
.	ti 0
'	br \}
.el \{\
...\"	PUBLISH mode format
.	ps 30
.	vs 28
.	ad r	\" right adjust part number
Part \\$1
.	sp -.5v
\s30\l'\\n(.lu'\s0
.	ti 0
.	ad l
\&\\$2
'	br \}
...\"
.tm !TOC: .)T 9 "" "" ""          \" leave some vertical white space
.tm !TOC: .)T 9 "" "" ""
.tm !TOC: .)T 9 \\$1 "\h'-.25i'\s+4Part \\$1.  \\$2\s-4" ""
.tm !TOC: .)T 9 "" "" ""          \" leave some vertical white space
.tm !PART:\\$2\"			to carry across pieces
.ds |P \\$2\"
.br
.ps
.vs
.rn }f }F	\" save page feet
.rn }p }P
.nr !_ 1
.de |B		\" this is called by TP to replace the footer macros
.rn }F }f
.rn }P }p
\\..
..
...\"
...\"
...\"
...\"
...\"
...\"	Macros Delimiting Titled Elements of a Document
...\"	-----------------------------------------------
...\"
...\"
...\" Table header ends (equivalent to .TH)
.de tH
.TH
..
...\"
...\"
...\"
...\" Figure start--undefined operation
...\"
...\"  "Procedures" (the next couple of macro defs) are step-wise
...\"    instructions for doing something.  The intention is that
...\"    the procedure is introduced with '.pR "name of procedure"'
...\"    which is followed by a .pS/.pE region.  Within that region,
...\"    a list is active, and each step is introduced with a '.LI'.
...\"    Right now, it is a plain .AL list, but it will be enhanced
...\"    in the future.
...\"
...\" Procedure title
.nr %^ 0 1	\" Procedure title counter, .nr %^
.de pR
.P
\fRProcedure \\n+(%^ \\$1\fR\"	\" increment %^ each time
.P
..
...\" Procedure start
...\" Uses .AL list  (see comment above)
.de pS	\" start a procedure list
.AL
..
...\" Procedure end
.de pE	\" end a procedure list
.LE
..
...\"
...\"
...\"	Macros Delimiting Untitled Elements of a Document
...\"	-------------------------------------------------
...\"
...\"
...\" Paragraph
.de PP
.P
..
...\" Start set-off text piece region
.de tS
.DS I
..
...\" End set-off text piece region
.de tE
.DE
..
...\" Start glossary entry region
.de gS
.ft B
..
...\" End glossary entry region
.de gE
.ft R
..
...\"
...\" make .P work inside .nS
...\"
...\"  this code anticipates the use of a .P inside an indented area
...\"
.rn P #P
...\"
.de P
.ie \\n(Nn>0 \{\
.	ie t .sp .5             \" don't use .P within a note region
.	el .sp 1 \}
.el .#P
..
...\"
...\"
...\" Manual title (for title page)
.de mA
.br
.di {1
\&\fB\s20\\$1\fR
.SP 1
.if !\\$2 \&\fB\s20\\$2\fR
.br
.di
..
...\" Manual revision (for title page)
.de rV
.ds {2 \&\\$1
.br
..
...\" Manual copyright (for disclaimer)
.de cO
.br
.da {3
\&\\$1
.br
.da
..
...\" Manual author (for title page)
.de aU
.ds {4 \&\\$1
..
...\" Order Number (for title page)
.de oN
.ds {5 \&\\$1
..
...\"
...\"
...\"   Lists (based on work first done with rsml)
...\"	==========================================
...\"   
...\" variable use (where <L> means # for the cuurrent level):
...\"
...\" number registers:
...\" 	Ll			the current list level
...\"	$A          the current AL list level
...\"   $M			the current ML list level
...\"
...\"	%<L>		indent for this 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 A lists active
.nr $M 0 1	\" no M lists active
...\"
...\"
...\" Start nonsequential invariant list
...\"
...\"
.rn ML #M
.de ML
.nr Ll +1	\"	track list level
.nr $M +1	\"	track M list level
.ie \\n($M=1 .BL
.el .DL
.ds #\\n(Ll M\"	we're in a 'M' list
..
...\"
...\"
...\" Start seqential invariant list
...\"
...\"
.rn AL #A
.de AL
.nr Ll +1	\"	track list level
.nr $A +1	\"	track A list level
.ie \\n($A=1 .#A 1
.el .ie \\n($A=2 .#A a
.el .#A i
.ds #\\n(Ll A\"		within an A list
..
...\"
...\"
...\"  recognize other types of lists so that nested lists will work..
...\"
.am VL
.nr Ll +1	\"	track list level
.ds #\\n(Ll V\"		within an V list
..
...\"
...\"
...\"
...\" End of list
...\"
...\"
.am LE
.if \\*(#\\n(LlA .nr $A -1
.if \\*(#\\n(LlM .nr $M -1
.if \\n(Ll>0 .nr Ll -1
..
