|
|
1.1 ! root 1: |macro(top.of.page; ! 2: [ ! 3: '\" ;P page number register TEMP ! 4: .nr ;! 1 ! 5: .de TP ! 6: 'sp 1v+1p ! 7: .af ;P \\gP \" save format of page_counter ! 8: .af P 1 \" normal format for next line ! 9: .nr ;P \\n P \" must use different name for P ! 10: .af P \\g(;P \" restore format to P ! 11: .af ;P 1 \" normal format for control register ! 12: 'sp 0 \"changed from 2 ! 13: .ie \\n(;!>1 \{ \" output headers ! 14: .tl \\*(PH ! 15: .if !\\n(;P%2 .tl \\*(EH ! 16: .if \\n(;P%2 .tl \\*(OH \} ! 17: .el 'sp 2+.75i-8p \"changed from 1 ! 18: 'sp 1v \"changed from 2 ! 19: .ns ! 20: .rr ;P \" free storage ! 21: .nr ;! 2 ! 22: .. ! 23: ]) ! 24: ! 25: |macro(bottom.of.page; ! 26: [ ! 27: .deBP ! 28: .ev2 ! 29: .if\\n(:C \{\ ! 30: .ll\\n(W0u ! 31: .lt\\n(W0u \} ! 32: .rs ! 33: 'sp 1+8p ! 34: .af;P \\gP ! 35: .afP 1 ! 36: .nr;P \\n P ! 37: .afP \\g(;P ! 38: .af;P 1 ! 39: .if!\\n(;P%2 .tl \\*(EF ! 40: .if\\n(;P%2 .tl \\*(OF ! 41: .if\\n(:C \{\ ! 42: .ll\\nWu ! 43: .lt\\nWu \} ! 44: .ev ! 45: .rr;P ! 46: .. ! 47: ]) ! 48: ! 49: |environment(titlebox; ! 50: ; ! 51: ! 52: new.page, ! 53: fill off, inline off, size +2, space +2, font bold, center on, ! 54: macro TI, font roman, size -2, space -2, SPACE, ! 55: blank.lines, size +1, inline on, ! 56: |for i in 1 2 3 [ ! 57: if "\nA>=$i", ! 58: string A$i, ! 59: ] ! 60: inline off, font roman, size -1, inline on, blank.lines 1v-6p, ! 61: text italics "AT&T Bell Laboratories", new.line, ! 62: text italics "Murray Hill, New Jersey 07974", new.line, ! 63: center off, fill on, ! 64: ! 65: |ifvalue sawabstract on { ! 66: blank.lines, center on, size +1, text italics "ABSTRACT", ! 67: size -1, center off, minimum.lines, ! 68: indent +.5i, line.length -.5i, line.spacing 1, paragraph, ! 69: macro AS, line.length +.5i, indent -.5i, ! 70: } ! 71: minimum.lines) ! 72: |comment<summary: titlebox (produce title box here)> ! 73: ! 74: |environment(reference_placement; ! 75: |ifvalue sawreference on [ ! 76: minimum.lines 1v, protect, incr S0, ! 77: clear S1 S2 S3, ! 78: set string Ts "References", ! 79: font bold, ! 80: |ifvalue sectioning bychapter [ ! 81: number CH, text ".", ! 82: ] ! 83: number S0, ! 84: |ifvalue sectioning bysection [ ! 85: text ".", ! 86: ] ! 87: text " ", string Ts, font roman, ! 88: paragraph, ! 89: clear string Rs, ! 90: |ifvalue sectioning bychapter [ ! 91: store string.from.number Rs CH, ! 92: add string Rs ".", ! 93: ] ! 94: |ifvalue sectioning byappendix [ ! 95: store string.from.number Rs AC, ! 96: add string Rs ".", ! 97: ] ! 98: add string.from.number Rs S0, ! 99: |ifvalue sectioning bysection [ ! 100: contents section 1 Rs Ts, ! 101: ] ! 102: |ifvalue sectioning bychapter [ ! 103: contents section 2 Rs Ts, ! 104: ] ! 105: |ifvalue sectioning byappendix [ ! 106: contents section 2 Rs Ts, ! 107: ] ! 108: reference.placement ! 109: ]; ! 110: ! 111: sawreference off) ! 112: |comment<summary: reference_placement (produce references here)> ! 113: ! 114: |environment(Oreference_placement; ! 115: |ifvalue sawreference on [ ! 116: minimum.lines 3, ! 117: set string Ts "References", ! 118: inline off, size +1, center on, ! 119: font bold, string Ts, font roman, ! 120: center off, size -1, inline on, ! 121: minimum.lines, ! 122: clear string Rs, ! 123: contents section 1 Rs Ts, ! 124: reference.placement ! 125: ]; ! 126: ! 127: sawreference off) ! 128: |comment<summary: reference_placement (produce references here)> ! 129: ! 130: |environment(appendix; ! 131: blank.lines 3, ! 132: number format AC A, incr AC, ! 133: clear S0 S1 S2 S3, ! 134: set string Rs "Appendix ", ! 135: add string.from.number Rs AC, ! 136: divert.string Ts; ! 137: ! 138: sectioning byappendix, ! 139: center on, size +1, font bold, ! 140: string Rs, blank.lines, string Ts, ! 141: font roman, size -1, center off, ! 142: minimum.lines 1, paragraph, ! 143: store string.from.number Rs AC, ! 144: contents section 1 Rs Ts) ! 145: |comment<summary: appendix (numbered appendix; IT)> ! 146: ! 147: |environment(Tappendix; ! 148: blank.lines -1, ! 149: number format AC A, incr AC, ! 150: clear S0 S1 S2 S3, ! 151: set string Rs "Appendix ", ! 152: add string.from.number Rs AC, ! 153: divert.string Ts; ! 154: ! 155: sectioning byappendix, ! 156: center on, size +1, font bold, ! 157: string Rs, blank.lines, string Ts, ! 158: font roman, size -1, center off, ! 159: minimum.lines 1, paragraph, ! 160: store string.from.number Rs AC, ! 161: contents section 1 Rs Ts) ! 162: |comment<summary: appendix (numbered appendix; IT)> ! 163: ! 164: |environment(index; ! 165: divert.input on Ts;) ! 166: |comment<summary: index (toss this item for index)> ! 167: ! 168: |environment(section; ! 169: divert.string Ts; ! 170: ! 171: minimum.lines 1v, protect, incr S0, ! 172: clear S1 S2 S3, ! 173: font bold, ! 174: |ifvalue sectioning bychapter [ ! 175: number CH, text ".", ! 176: ] ! 177: |ifvalue sectioning byappendix [ ! 178: number AC, text ".", ! 179: ] ! 180: number S0, ! 181: |ifvalue sectioning bysection [ ! 182: text ".", ! 183: ] ! 184: text " ", string Ts, font roman, ! 185: paragraph, ! 186: clear string Rs, ! 187: |ifvalue sectioning bychapter [ ! 188: store string.from.number Rs CH, ! 189: add string Rs ".", ! 190: ] ! 191: |ifvalue sectioning byappendix [ ! 192: store string.from.number Rs AC, ! 193: add string Rs ".", ! 194: ] ! 195: add string.from.number Rs S0, ! 196: |ifvalue sectioning bysection [ ! 197: contents section 1 Rs Ts, ! 198: ] ! 199: |ifvalue sectioning bychapter [ ! 200: contents section 2 Rs Ts, ! 201: ] ! 202: |ifvalue sectioning byappendix [ ! 203: contents section 2 Rs Ts, ! 204: ]) ! 205: |comment<summary: section (numbered section; IT)> ! 206: ! 207: |associate(paragraph; ! 208: minimum.lines 4p; ! 209: ! 210: |ifvalue localparagraph.style indented [ ! 211: indent.line +5n, ! 212: ] ! 213: |ifvalue localparagraph.style numbered [ ! 214: incr S3, number format S3 i, ! 215: store string.from.number Ts S3, ! 216: add string Ts ") ", ! 217: string italics Ts, ! 218: ] ! 219: |ifvalue globalparagraph.style indented [ ! 220: localparagraph.style indented, ! 221: ] ! 222: |ifvalue globalparagraph.style numbered [ ! 223: localparagraph.style numbered, ! 224: ] ! 225: |ifvalue globalparagraph.style flushed [ ! 226: localparagraph.style flushed, ! 227: ]; ! 228: ! 229: [numbered;; ! 230: localparagraph.style numbered] ! 231: [n;; ! 232: localparagraph.style numbered] ! 233: [indented;; ! 234: localparagraph.style indented] ! 235: [i;; ! 236: localparagraph.style indented] ! 237: [flushed;; ! 238: localparagraph.style flushed] ! 239: [f;; ! 240: localparagraph.style flushed]) ! 241: |comment<summary: paragraph (n, i, f, numbered, indented, flushed)> ! 242: ! 243: |associate(p; ! 244: minimum.lines 4p; ! 245: ! 246: |ifvalue localparagraph.style indented [ ! 247: indent.line +5n, ! 248: ] ! 249: |ifvalue localparagraph.style numbered [ ! 250: incr S3, number format S3 i, ! 251: store string.from.number Ts S3, ! 252: add string Ts ") ", ! 253: string italics Ts, ! 254: ] ! 255: |ifvalue globalparagraph.style indented [ ! 256: localparagraph.style indented, ! 257: ] ! 258: |ifvalue globalparagraph.style numbered [ ! 259: localparagraph.style numbered, ! 260: ] ! 261: |ifvalue globalparagraph.style flushed [ ! 262: localparagraph.style flushed, ! 263: ]; ! 264: ! 265: [numbered;; ! 266: localparagraph.style numbered] ! 267: [n;; ! 268: localparagraph.style numbered] ! 269: [indented;; ! 270: localparagraph.style indented] ! 271: [i;; ! 272: localparagraph.style indented] ! 273: [flushed;; ! 274: localparagraph.style flushed] ! 275: [f;; ! 276: localparagraph.style flushed]) ! 277: |comment<summary: p (alias for paragraph)> ! 278: ! 279: |attribute<ps.include; nostack; ! 280: $file $x $y [\X'PI:\n(.o:\n(.i:\n(.l:\n(.t:\*($file:\*($y,\*($x,0,0::'\c ! 281: ] $file $x $y $xoffset $yoffset [\X'PI:\n(.o:\n(.i:\n(.l:\n(.t:\*($file:\*($y,\*($x,\*($yoffset,\*($xoffset::'\c ! 282: ]> ! 283: ! 284: |associate(postscript; ! 285: incr D, clear T, ! 286: clear string T1, ! 287: set string T2 "8.5i", ! 288: set string T3 "11i", ! 289: set string T4 T5 "0"; ! 290: ! 291: if begin "!@T1@@", ! 292: ps.include T1 T2 T3 T4 T5, ! 293: if end; ! 294: ! 295: [file $; incr T, set string T1 $;] ! 296: [x $; incr T, set string T2 $;] ! 297: [y $; incr T, set string T3 $;] ! 298: [xoffset $; incr T, set string T4 $;] ! 299: [yoffset $; incr T, set string T5 $;] ! 300: [$; incr T, set string T\nT $;]) ! 301: |comment<summary: postscript (file, x, y, xoffset, yoffset)> ! 302: ! 303: |attribute<draw.rule; nostack; ! 304: $x [\D'l $x 0'] ! 305: $x $y [\D'l $x $y']> ! 306: ! 307: |environment(ruled.display; ! 308: minimum.lines 1, draw.rule 3i; ! 309: ! 310: minimum.lines 1, draw.rule 3i) ! 311: |comment<summary: ruled.display (produce ruled display here)> ! 312: ! 313: |attribute(figsize; ; ! 314: $ [ ! 315: .ps$ ! 316: ]) ! 317: ! 318: |environment(figsmall; ! 319: figsize -1; figsize +1) ! 320: |comment<summary: small (reduce the point size)> ! 321: ! 322: |style(page_length -2v, page_width 6.5i, paragraph_style indented)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.