V10/vol2/ADM/monk.mac

|macro(top.of.page;
	[
'\"	;P page number register TEMP
.nr ;! 1
.de TP
'sp
.af ;P \\gP			\" save format of page_counter
.af P 1				\" normal format for next line
.nr ;P \\n P			\" must use different name for P
.af P \\g(;P			\" restore format to P
.af ;P 1			\" normal format for control register
'sp 2
.ie \\n(;!>1 \{		\" output headers
.tl \\*(PH
.if !\\n(;P%2 .tl \\*(EH
.if \\n(;P%2 .tl \\*(OH \}
.el 'sp 1
'sp 2
.rr ;P				\" free storage
.nr ;! 2
..
])

|style(page_width 6.5i)

|environment(titlebox;
	;

	new.page,
	fill off, inline off, size +2, space +2, font bold, center on,
	macro TI, font roman, size -2, space -2, SPACE,
	blank.lines, size +1, inline on,
|for i in 1 2 3 [
	if "\nA>=$i",
		string A$i,
]
	inline off, font roman, size -1, inline on, blank.lines,
	text italics "AT&T Bell Laboratories", new.line,
	text italics "Murray Hill, New Jersey 07974", new.line,
	center off, fill on,

	|ifvalue sawabstract on {
		blank.lines, center on, size +1, text italics "ABSTRACT",
		size -1, center off, minimum.lines,
		indent +.5i, line.length -.5i, line.spacing 1, paragraph,
		macro AS, line.length +.5i, indent -.5i,
	}
	minimum.lines)
	|comment<summary: titlebox (produce title box here)>

|environment(reference_placement;
	|ifvalue sawreference on [
		spacing on, blank.lines 3,
		set string Ts "References",
		inline off, size +1, center on,
		font bold, string Ts, font roman,
		center off, size -1, inline on,
		minimum.lines,
		clear string Rs,
		contents section 1 Rs Ts,
		reference.placement
	];

	sawreference off)
	|comment<summary: reference_placement (produce references here)>

|environment(appendix;
	spacing on, blank.lines 3,
	number format AC A, incr AC,
	clear S0 S1 S2 S3,
	set string Rs "Appendix ",
	add string.from.number Rs AC,
	divert.string Ts;

	sectioning byappendix,
	center on, size +1, font bold,
	string Rs, blank.lines, string Ts,
	font roman, size -1, center off,
	minimum.lines 1, paragraph,
	store string.from.number Rs AC,
	contents section 1 Rs Ts)
	|comment<summary: appendix (numbered appendix; IT)>

|environment(index;
	divert.input on Ts;)
	|comment<summary: index (toss this item for index)>

|associate(paragraph;
	minimum.lines .3v;

	|ifvalue localparagraph.style indented [
		indent.line +5n,
	]
	|ifvalue localparagraph.style numbered [
		incr S3, number format S3 i,
		store string.from.number Ts S3,
		add string Ts ") ",
		string italics Ts,
	]
	|ifvalue globalparagraph.style indented [
		localparagraph.style indented,
	]
	|ifvalue globalparagraph.style numbered [
		localparagraph.style numbered,
	]
	|ifvalue globalparagraph.style flushed [
		localparagraph.style flushed,
	];

	[numbered;;
		localparagraph.style numbered]
	[n;;
		localparagraph.style numbered]
	[indented;;
		localparagraph.style indented]
	[i;;
		localparagraph.style indented]
	[flushed;;
		localparagraph.style flushed]
	[f;;
		localparagraph.style flushed])
	|comment<summary: paragraph (n, i, f, numbered, indented, flushed)>

|associate(p;
	minimum.lines .3v;

	|ifvalue localparagraph.style indented [
		indent.line +5n,
	]
	|ifvalue localparagraph.style numbered [
		incr S3, number format S3 i,
		store string.from.number Ts S3,
		add string Ts ") ",
		string italics Ts,
	]
	|ifvalue globalparagraph.style indented [
		localparagraph.style indented,
	]
	|ifvalue globalparagraph.style numbered [
		localparagraph.style numbered,
	]
	|ifvalue globalparagraph.style flushed [
		localparagraph.style flushed,
	];

	[numbered;;
		localparagraph.style numbered]
	[n;;
		localparagraph.style numbered]
	[indented;;
		localparagraph.style indented]
	[i;;
		localparagraph.style indented]
	[flushed;;
		localparagraph.style flushed]
	[f;;
		localparagraph.style flushed])
	|comment<summary: p (alias for paragraph)>

|style(paragraph_style indented)