~ubuntu-branches/ubuntu/natty/9base/natty

« back to all changes in this revision

Viewing changes to troff/tmac/tmac.cs

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Baumann
  • Date: 2009-11-07 12:25:14 UTC
  • mto: (6.2.3 squeeze)
  • mto: This revision was merged to the branch mainline in revision 9.
  • Revision ID: james.westby@ubuntu.com-20091107122514-7fngaksi3zra1vt4
Tags: upstream-4
ImportĀ upstreamĀ versionĀ 4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
'''\"                                   coversheet to match version 8/06/87
 
2
'''\"                                           from comp center 1.30 7/20/87
 
3
'''\"                                   1/22/97 spacing change in addresses;
 
4
'''\"                                           email on separate line - mdm
 
5
'''\" registers
 
6
'''\"   a - abstract continuation flag - 0 (no), >0 (yes)
 
7
'''\"   b - mercury selections counter
 
8
'''\"   c - distribution continuation flag - 0 (no), 1 (yes)
 
9
'''\"   d - flag for length calculation
 
10
'''\"   e - complete copy basic distribution length
 
11
'''\"   g - complete copy overflow distribution length
 
12
'''\"   h - cover sheet basic distribution length
 
13
'''\"   i - cover sheet overflow distribution length
 
14
'''\"   k - keyword flag - 0 (none), 1 (some) - reused as scratch
 
15
'''\"   l - number of vertical units per line - troff
 
16
'''\"   m - memorandum type flag - 1 TM, 2 IM, 3 TC
 
17
'''\"   n - document number counter
 
18
'''\"   o - title flag - 0 (no), 1 (yes - vertical size of title diversion)
 
19
'''\"   p - proprietary notice flag - 0 (none), 1 (default), 2(BR)
 
20
'''\"   r - security flag - 0 (no), 1 (yes)
 
21
'''\"   s - software flag - 0 (no), 1 (yes)
 
22
'''\"   t - mark title position
 
23
'''\"   u - author count
 
24
'''\"   q v w x y z- scratch - but remembered
 
25
'''\"   aa - ship to itds
 
26
'''\" strings
 
27
'''\"   a) b)- mercury info
 
28
'''\"   d) - date
 
29
'''\"   k) - keywords
 
30
'''\"   N1 - first document number
 
31
'''\"   p) q) r)- proprietary 1
 
32
'''\"   s) - time stamp string
 
33
'''\"   t) - memo type (TM, IM, TC)
 
34
'''\"   v) - document nos
 
35
'''\"   w) - filing case nos
 
36
'''\"   x) - work project nos
 
37
'''\"   e( - earlier document
 
38
'''\"   m( n( o( p(- authors 1-3 sig
 
39
'''\"   r( - responsible person
 
40
'''\"   s( - S software string
 
41
'''\"   t( - memo type ("for Technical Memorandum", etc.)
 
42
'''\"   x( - Mailing Label or DRAFT
 
43
'''\"   N2 N3- 2nd 3rd document number
 
44
'''\"   Fi - up to 3 filing cases
 
45
'''\"   Xi - up to 3 work program numbers
 
46
'''\" diversions
 
47
'''\"   WB - abstract
 
48
'''\"   ZI - author info section
 
49
'''\"   ZC - complete copy addressee primary
 
50
'''\"   ZO - complete copy addressee overflow
 
51
'''\"   ZS - cover sheet addressee primary
 
52
'''\"   ZD - cover sheet addressee overflow
 
53
'''\"   ZN - document number info
 
54
'''\"   WT - title
 
55
'''\"
 
56
'''\" initialization
 
57
'''\"
 
58
'''\"           get ms if not loaded
 
59
.if !\n(PS .so /usr/lib/tmac/tmac.s
 
60
.       \" to foil ms
 
61
.if !'\*(d)'' \{\
 
62
.       tm You're trying to load the coversheet macros twice - havoc will result
 
63
.       tm I'm quitting to keep you from wasting paper
 
64
.       ex \}
 
65
.rn FE F6
 
66
.nr ST 0
 
67
.nr CS 1
 
68
.ch NP 16i
 
69
.ch FO 16i
 
70
.ch FX 16i
 
71
.ch BT 16i
 
72
.nr FM .01i
 
73
.nr 1T 1
 
74
.nr BE 1
 
75
.nr PI 5n
 
76
.if !\n(PD .nr PD 0.3v
 
77
.pl 11i
 
78
.de FT
 
79
.fp 1 H
 
80
.fp 2 HI
 
81
.fp 3 HB
 
82
.fp 4 HX
 
83
.ps 10
 
84
.vs 12
 
85
..
 
86
.de FB
 
87
.ie !'\\*(TF'' .FP \\*(TF
 
88
.el .FP times
 
89
.ps 10
 
90
.vs 12
 
91
..
 
92
.FT
 
93
.de FE
 
94
.F6
 
95
.nr F4 +\\n(FP
 
96
..
 
97
.nr a 0 1
 
98
.nr b 0 1
 
99
.nr c 0
 
100
.nr d 0
 
101
.nr e 0
 
102
.nr g 0
 
103
.nr h 6
 
104
.nr i 0
 
105
.nr k 0
 
106
.nr m 0
 
107
.nr n 0 1
 
108
.nr o 0
 
109
.nr p 1
 
110
.nr q 0
 
111
.nr r 0
 
112
.nr s 0
 
113
.nr t 0
 
114
.nr u 0 1
 
115
.nr v 0
 
116
.nr w 0
 
117
.nr x 0
 
118
.nr y 0
 
119
.nr z 0
 
120
.nr dv 0
 
121
.if '\*(.T'aps' .nr dv 1
 
122
'''\"   initialize units per vertical space
 
123
.nr l 120
 
124
.nr lp 66
 
125
.nr np 2 1
 
126
.af np i
 
127
.nr tp 2 1
 
128
.nr tc 2
 
129
.af tc i
 
130
.nr la 0
 
131
.nr a1 0
 
132
.nr a2 0
 
133
.nr ar 0
 
134
.nr u! 1
 
135
.nr ud 1
 
136
.nr ra 1
 
137
.di ZI
 
138
.di
 
139
.di ZN
 
140
.di
 
141
.di ZC
 
142
.di
 
143
.di ZO
 
144
.di
 
145
.di ZS
 
146
.di
 
147
.di ZD
 
148
.di
 
149
'''\"initialize date string - keep for 1st pg of tm
 
150
.if \n(mo-0 .ds d) January
 
151
.if \n(mo-1 .ds d) February
 
152
.if \n(mo-2 .ds d) March
 
153
.if \n(mo-3 .ds d) April
 
154
.if \n(mo-4 .ds d) May
 
155
.if \n(mo-5 .ds d) June
 
156
.if \n(mo-6 .ds d) July
 
157
.if \n(mo-7 .ds d) August
 
158
.if \n(mo-8 .ds d) September
 
159
.if \n(mo-9 .ds d) October
 
160
.if \n(mo-10 .ds d) November
 
161
.if \n(mo-11 .ds d) December
 
162
.as d) " \n(dy, 20\n(yr
 
163
.ds DY \*(d)
 
164
'''                     \" initialize strings
 
165
.ds m!
 
166
.ds m(
 
167
.ds n!
 
168
.ds n(
 
169
.ds o!
 
170
.ds o(
 
171
.ds x!
 
172
.ds y!
 
173
.ds z!
 
174
'''                     \" initialize proprietary notice
 
175
.ds o) "Lucent Technologies \(em PROPRIETARY
 
176
.ds p) "Use pursuant to Company Instructions
 
177
.ds q)
 
178
.ds r)
 
179
'''                     \" initialize trademark symbol
 
180
.ds MT \v'-0.5m'\s-4TM\s+4\v'0.5m'
 
181
.ds s) 0
 
182
'''                     \"initialize csmacro version string
 
183
.ds ve MCSL (07/12/90)
 
184
....in 0
 
185
'''\"
 
186
'''                     \" macros to collect information
 
187
'''\"
 
188
.de DT                          \" macro for date
 
189
'''\"                                   store date if non-empty
 
190
.if !'\\$1'' .ds d) \\$1 \\$2 \\$3 \\$4
 
191
.ds DY \\$1 \\$2 \\$3 \\$4
 
192
..
 
193
.de TI                          \" macro for title -TI = mm(TL)
 
194
.br
 
195
.nr aa 0
 
196
.nr TV 1
 
197
.ds x( "Mailing Label \}
 
198
.in 0
 
199
.fi
 
200
.ll 4.25i
 
201
'''\"                                   diversion for title ZT = mm(tI)
 
202
.di WT
 
203
..
 
204
.de AH                          \" macro for author info AH = mm(AU)
 
205
'''\"           name loc dept ext room mail_addr company
 
206
'''\"                                   don't count author unless non-empty
 
207
.br
 
208
.di
 
209
.if !'\\$1'' .nr u \\n+u
 
210
.nr AV \\nu
 
211
.if \\nu=1 \{\
 
212
.       br
 
213
'''\"                                   end title diversion on first author
 
214
.       di
 
215
.       nr o \\n(dn
 
216
.       ll
 
217
.       nf
 
218
.       ds d! \\$3
 
219
.       nr m2 \\$3/10 \}
 
220
.ta 0.3i 3.i 4i 5.5i
 
221
.br
 
222
.ds D\\nu \\$2 \\$3
 
223
.ds \\nuL \\$5, x\\$4
 
224
'''\"                                   append to author list ZI = mm(aV)
 
225
.da ZI
 
226
        \\$1    \\$2 \\$5       \\$4    \\$7
 
227
.br
 
228
.da
 
229
.if !'\\$6'' \{\
 
230
.da ZI
 
231
        (\\$6)
 
232
.br
 
233
.da \}
 
234
'''\"                                   end append; info for signature lines
 
235
.AA \\nu "\\$1" \\$3 \\$2 "\\$4" \\$5 \\$6
 
236
.ta 0.5i 1.0i 1.5i 2.0i 2.5i
 
237
..
 
238
.de AA
 
239
.\"ft 3
 
240
.di M\\$1
 
241
\\$2
 
242
.di
 
243
.di A\\$1
 
244
\\$2
 
245
.if !'\\$3'' Org. \\$3
 
246
.if !'\\$4'' \\$4 \\$6
 
247
.if !'\\$5'' \\$5
 
248
.if !'\\$7'' \\$7
 
249
.sp .05i
 
250
.br
 
251
.di
 
252
.ft
 
253
.sy echo \\$2 >/tmp/tt\\n($$
 
254
.sy sed -f /usr/lib/tmac/name.sed /tmp/tt\\n($$ >/tmp/tx\\n($$
 
255
.so /tmp/tx\\n($$
 
256
.sy rm /tmp/tx\\n($$ /tmp/tt\\n($$
 
257
.if \\$1<2 .ds T1 \\*(T1-gre
 
258
.da G9
 
259
\\$4-\\$3-\\*(T1
 
260
.br
 
261
.da
 
262
.if !'\\*(d!'\\$3' \{\
 
263
.       nr u! \\n(u!+1
 
264
.       nr m3 \\$3/10
 
265
.       if !\\n(m2=\\n(m3 .nr ud \\n(ud+1 \}
 
266
.ie \\$1<4 \{\
 
267
.       as m! \\l'2.25i'        
 
268
.       as m(   \\$2 \}
 
269
.el .ie \\$1<7 \{\
 
270
.       as n! \\l'2.25i'        
 
271
.       as n(   \\$2 \}
 
272
.el \{\
 
273
.       as o! \\l'2.25i'        
 
274
.       as o(   \\$2 \}
 
275
..
 
276
.de TO  \"begin list of im to people
 
277
.nr TO 1
 
278
.di 1T
 
279
..
 
280
.de ET          \"end list of im to people & output pg
 
281
.di
 
282
.SR
 
283
..
 
284
.de AP                          \" at&t responsible person AP = mm(rP)
 
285
.br
 
286
.di
 
287
.if !'\\$1'' .ds r( \\$1
 
288
.rm AP
 
289
..
 
290
.de SA                          \" macro for abstract info SA = mm(AS)
 
291
.br
 
292
.ie \\n(.$ \{\ 
 
293
.ds a( \\$1
 
294
.if '\\$1'no' .ds a(\}
 
295
.el .ds a( ABSTRACT
 
296
.nr CS 0
 
297
.di
 
298
.fi
 
299
.nr LL 7.0i
 
300
.FB
 
301
.ft 1
 
302
.di WB                          \" WB = mm(aS)
 
303
..
 
304
.de SE                          \" macro for end of abstract info SE = mm(AE)
 
305
.br
 
306
.di
 
307
.nr la \\n(dn
 
308
.nr CS 1
 
309
.ll
 
310
.FT
 
311
.ft 1
 
312
.nf
 
313
..
 
314
.de KW                          \" macro for keyword info KW = mm(OK)
 
315
.ds k)
 
316
.if !'\\$1'' .as k) \\$1
 
317
.if !'\\$2'' .as k); \\$2
 
318
.if !'\\$3'' .as k); \\$3
 
319
.if !'\\$4'' .as k); \\$4
 
320
.if !'\\$5'' .as k); \\$5
 
321
.if !'\\$6'' .as k); \\$6
 
322
.if !'\\$7'' .as k); \\$7
 
323
.if !'\\$8'' .as k); \\$8
 
324
.if !'\\$9'' .as k); \\$9
 
325
'''\"                                   set k flag if we have some keywords
 
326
.ie !'\\*(k)'' .nr k 1
 
327
.el .nr k 0
 
328
..
 
329
.de TY                          \" macro for document type TY = mm(MT)
 
330
.if '\\$1'TM' \{\
 
331
.       nr m 1
 
332
.       ds t) TM
 
333
.       ds QF TECHNICAL MEMORANDUM
 
334
.       ds t( "for Technical Memorandum \}
 
335
.if '\\$1'IM' \{\
 
336
.       nr m 2
 
337
.       ds t) IM
 
338
.       ds QF INTERNAL MEMORANDUM
 
339
.       ds t( "for Internal Memorandum \}
 
340
.if '\\$1'TC' \{\
 
341
.       nr m 3
 
342
.       ds t) TC
 
343
.       ds QF TECHNICAL CORRESPONDENCE
 
344
.       ds t( "for Technical Correspondence \}
 
345
.ie '\\$2'y' .nr s 1
 
346
.el .nr s 0
 
347
..
 
348
.de NU                          \" macro for document number info NU = mm(dN fC wP)
 
349
.ie \\ns=1 .ds s( S
 
350
.el .ds s(
 
351
.ie \\n(wp=0 \{\
 
352
.       ie '\\$5'' .ds CX 000000-0000
 
353
.       el .ds CX \\$5
 
354
.       ds X1 \\*(CX
 
355
.       nr wp \\n(wp+1 \}
 
356
.el \{\
 
357
.       ds CX \\$5
 
358
.       if !'\\$5'' \{\
 
359
.               if \\n(wp=1 .ds X2 \\*(CX
 
360
.               if \\n(wp=2 .ds X3 \\*(CX
 
361
.               if \\n(wp=3 .ds X4 \\*(CX
 
362
.               if \\n(wp=4 .ds X5 \\*(CX
 
363
.               nr wp \\n(wp+1
 
364
.               ds x) s\}\}
 
365
.if !'\\$4'' \{\
 
366
.       ie !\\n(fc=0 \{\
 
367
.               if \\n(fc=1 .ds F2 \\$4
 
368
.               if \\n(fc=2 .ds F3 \\$4
 
369
.               if \\n(fc=3 .ds F4 \\$4
 
370
.               if \\n(fc=4 .ds F5 \\$4
 
371
.               ds w) s
 
372
.               nr fc \\n(fc+1 \}
 
373
.       el \{\
 
374
.               ds F1 \\$4
 
375
.               nr fc \\n(fc+1 \} \}
 
376
.ie !'\\$1'' \{\
 
377
.       ds NN \\$1-\\$2-\\$3\\*(t)\\*(s(
 
378
.       if \\nn=0 .ds N1 \\*(NN
 
379
.       if \\nn=1 \{\
 
380
.               ds v) s
 
381
.               ds N2 \\*(NN\}
 
382
.       if \\nn=2 .ds N3 \\*(NN
 
383
.       if \\nn=3 .ds N4 \\*(NN
 
384
.       if \\nn=4 .ds N5 \\*(NN
 
385
.       ie \\nn<4 .as x! \\l'2.25i'     
 
386
.       el ie \\nn<7 .as y! \\l'2.25i'  
 
387
.       el .as z! \\l'2.25i'    
 
388
.       nr n \\n+n \}
 
389
.if !'\\$6'' \{\
 
390
.       ie !\\n(a!=0 \{\
 
391
.               if \\n(a!=1 .as Z1 "    \\$6
 
392
.               if \\n(a!=2 .as Z1 \\$6
 
393
.               nr a! \\n(a!+1 \}
 
394
.       el \{\
 
395
.               ds Z1 " \\$6
 
396
.               nr a! \\n(a!+1 \} \}
 
397
.el .ds NN
 
398
.ta 0.8i 3.5i 5.55i
 
399
.br
 
400
.da ZN                          \" ZN = mm(dM fC wO)
 
401
        \\*(NN  \\$4    \\*(CX
 
402
.br
 
403
.da
 
404
.ta 0.5i 1.0i 1.5i
 
405
..
 
406
.de MY                          \" macro for mercury selections MY = mm(mE)
 
407
.ds a)
 
408
.ds b)
 
409
.if '\\$1'y' \{\
 
410
.       as a) " CHM - Chemistry and Materials
 
411
.       nr b \\n+b \}
 
412
.if '\\$2'y' \{\
 
413
.       as a) " CMM - Communications
 
414
.       nr b \\n+b \}
 
415
.if '\\$3'y' \{\
 
416
.       as a) "         CMP - Computing
 
417
.       nr b \\n+b
 
418
.       if \\nb=3 .rn a) b) \}
 
419
.if '\\$4'y' \{\
 
420
.       as a) " ELC - Electronics
 
421
.       nr b \\n+b
 
422
.       if \\nb=3 .rn a) b) \}
 
423
.if '\\$5'y' \{\
 
424
.       as a) " LFS - Life Sciences
 
425
.       nr b \\n+b
 
426
.       if \\nb=3 .rn a) b) \}
 
427
.if '\\$6'y' \{\
 
428
.       as a) " MAS - Mathematics and Statistics
 
429
.       nr b \\n+b
 
430
.       if \\nb=3 .rn a) b) \}
 
431
.       if \\nb<6 \{\
 
432
.       if '\\$7'y' \{\
 
433
.               as a) " PHY - Physics
 
434
.               nr b \\n+b
 
435
.               if \\nb=3 .rn a) b) \} \}
 
436
.       if \\nb<6 \{\
 
437
.       if '\\$8'y' \{\
 
438
.               as a) " MAN - Manufacturing
 
439
.               nr b \\n+b \} \}
 
440
.if \\nb=3 .rn b) a)
 
441
..
 
442
.de RL                          \" lucent distribution ok RL = mm(rA or fA)
 
443
.if '\\$1'n' .nr ra 2
 
444
.rm RL
 
445
..
 
446
.de ED                          \" earlier document number ED = mm(eD)
 
447
.if !'\\$1'' .ds e( \\$1
 
448
.rm ED
 
449
..
 
450
.de PR                          \" macro for proprietary marking PR = mm(PM)
 
451
.if '\\$1'BP' .nr p 1
 
452
.if '\\$1'BR' \{\
 
453
.       nr p 2
 
454
.       ds o) "Lucent Technologies \(em PROPRIETARY (RESTRICTED)
 
455
.       ds p) "Solely for authorized persons having a need to know
 
456
.       ds q) "     pursuant to Company Instructions \}
 
457
.if '\\$1'0' .nr p 0
 
458
..
 
459
.de GS                          \" GS = mm(gS)
 
460
.nr r 1
 
461
..
 
462
.de CI
 
463
..
 
464
.de XE
 
465
'''\"                           basic distribution leng-to be tailored-set e & h
 
466
.if \\nd=0 \{\
 
467
.       nr d 1
 
468
.       if \\nr=0 .nr e \\ne+2
 
469
.       if \\nu<=3 .nr e \\ne+3
 
470
.       if \\nu<=6 .nr e \\ne+3
 
471
.       if \\nu<=9 .nr e \\ne+3
 
472
.       if \\nn<=3 .nr e \\ne+2
 
473
.       if \\nn<=6 .nr e \\ne+2
 
474
.       if \\nn<=9 .nr e \\ne+2
 
475
.       if \\n(ra<=2 .nr e \\ne-3
 
476
.       nr e \\ne+27
 
477
.       nr h \\ne \}
 
478
..
 
479
.de CO                          \" macro for complete copy addressees CO = mm(cC)
 
480
.XE
 
481
.ta 2.0i
 
482
.nf
 
483
.br
 
484
.ie \\ne>0 \{\
 
485
.       da ZC                           \" ZC = mm(cA)
 
486
.       ds y( \\$1
 
487
.       ie '\\$1'y' .so /usr/lib/tmac/complet.1127
 
488
.       el .if  !'\\$1'' .so /usr/lib/tmac/complet.\\*(y(
 
489
.       dt \\ne OC \}
 
490
.el .da ZC
 
491
..
 
492
.de OC                          \" macro for complete copy overflow - OC = mm(cD)
 
493
.ta 2.0i
 
494
.br
 
495
.da
 
496
.da ZO                          \" ZO = mm(cO)
 
497
.ie \\n(ar>0 .dt \\n(arv ZW
 
498
.el .dt 55 ZW
 
499
..
 
500
.de ZW
 
501
.br
 
502
.da
 
503
.ie \\n(dn>0 .g (\\n(dn)/\\nl+4
 
504
.da CZ
 
505
..
 
506
.de CV                          \" macro for cover sheet only addresses CV = mm(cS)
 
507
.XE
 
508
.ta 2.0i
 
509
.nf
 
510
.br
 
511
.ie \\nh>0 \{\
 
512
.       da ZS                           \" ZS = mm(dA)
 
513
.       ds y( \\$1
 
514
.       ie '\\$1'y' .so /usr/lib/tmac/cover.1127
 
515
.       el .if !'\\$1'' .so /usr/lib/tmac/cover.\\*(y(
 
516
.       dt \\nh OV \}
 
517
.el .da ZD
 
518
..
 
519
.de OV                          \" macro for cover sheet only overflow OV = mm(cT)
 
520
.ta 2.0i
 
521
.br
 
522
.da
 
523
.da ZD                          \" ZD = mm(cO)
 
524
.ie \\n(ar>0 .dt \\n(arv WW
 
525
.el .dt 55 WW
 
526
..
 
527
.de WW
 
528
.br
 
529
.da
 
530
.if \\n(dn>0 .nr i (\\n(dn)/\\nl+4      \" was ie with no el
 
531
.da DZ
 
532
..
 
533
.de CE                          \" ending all distribution diversions CE = mm(cE)
 
534
.br
 
535
.if "\\n(.z"ZC" \{\
 
536
.       nr g 0
 
537
.       rm OC \}
 
538
.if "\\n(.z"ZO" \{\
 
539
.       nr g -1
 
540
.       rm OC \}
 
541
.if "\\n(.z"CZ" \{\
 
542
.       nr g -2
 
543
.       rm OC \}
 
544
.if "\\n(.z"ZS" \{\
 
545
.       nr i 0
 
546
.       rm OV \}
 
547
.if "\\n(.z"ZD" \{\
 
548
.       nr i -1
 
549
.       rm OV \}
 
550
.if "\\n(.z"DZ" \{\
 
551
.       nr i -2
 
552
.       rm )V \}
 
553
.da
 
554
.if \\ng=-1 \{\
 
555
.       ie \\n(dn>0 .nr g (\\n(dn)/\\nl+4
 
556
.       el .nr g 0 \}
 
557
.if \\ni=-1 \{\
 
558
.       ie \\n(dn>0 .nr i (\\n(dn)/\\nl+4
 
559
.       el .nr i 0 \}
 
560
..
 
561
'''\"
 
562
'''\" macros to help format document
 
563
'''\"
 
564
.de HD
 
565
.po .5i \"was .25
 
566
.if "\\*(.T"aps" .tl '--''--'
 
567
.sp|0.2i
 
568
..
 
569
.de FC                          \" footer macro FC = mm(fO)
 
570
.pl 11.0i
 
571
'bp
 
572
..
 
573
.de ST                  \" macro for abstract overflow trap ST = mm(yY)
 
574
.ZB
 
575
.rm ST                          \" ZB = mm(aT)
 
576
..
 
577
.de ZB
 
578
.ch ST 16i                      \" macro for abstract overflow trap ZB = mm(aT)
 
579
.if \\na>0 \{\
 
580
.       ft 2
 
581
.       ce
 
582
(continued)
 
583
.       ft 1 \}
 
584
.pl 11.0i
 
585
.nr a \\n+a
 
586
.rn ZB XX
 
587
'bp
 
588
.rn XX ZB
 
589
.wh -0.35i ZB
 
590
.HC                             \" HC = mm(cH)
 
591
.HX                             \" HX = mm(tH)
 
592
'sp 0.05i
 
593
.ce
 
594
.ft 3
 
595
Abstract (continued)
 
596
.ft 1
 
597
.in 0.2i
 
598
'sp 1
 
599
.FB
 
600
..
 
601
.de TK                          \" macro for thick lines TKK = mm(tK)
 
602
.ps 24
 
603
\l'7.5i'
 
604
.ps
 
605
..
 
606
.de HX                          \" macro for Title headings and text HX = mm(tH)
 
607
.TK
 
608
'sp 0.05i
 
609
'''\"                                   mark t - Title heading
 
610
.mk t
 
611
.ft 3
 
612
Title:
 
613
.ft
 
614
'sp|\\ntu
 
615
.in 0.7i
 
616
.WT
 
617
.in 0
 
618
.ta 0.5i
 
619
.nr q \\no/\\nl
 
620
.ie \\nq>2 'sp|\\ntu+\\nq
 
621
.el 'sp|\\ntu+2
 
622
.TK
 
623
.                                       \" m1 - mark end of title section - save
 
624
.mk m1
 
625
..
 
626
.de HC                          \" macro for continuation header HC = mm(cH)
 
627
.nr np \\n+(np
 
628
.nf
 
629
.in 0
 
630
.FT
 
631
.ft 3
 
632
.ta 4.80i
 
633
.nr tc \\n(tp
 
634
        \\*(N1\f2 (page \\n(np of \\n(tc)
 
635
.sp 0.1i
 
636
..
 
637
.de DL                          \" macro for distribution list headers DL = mm(dH)
 
638
.ft 3
 
639
.ta 1.0i 4.75i
 
640
        \\$1    \\$2
 
641
.sp 0.05i
 
642
.ft 1
 
643
.ta 0.5i 1.0i
 
644
..
 
645
.de EJ                          \" macro for ejecting continuation page EJ = mm(eP)
 
646
'bp
 
647
.wh 0 HD
 
648
'''\"                           put out continuation page header & title section
 
649
.HC
 
650
.HX
 
651
..
 
652
.de CP                          \" macro for continuation page CP = mm(cP)
 
653
'''\"                                   calc vert. units for cc overflow (if any)
 
654
.ie \\nv<=\\n(.t .nr v 1
 
655
.el .nr v 0
 
656
.if \\nv=1 .if \\nw<=\\n(.t .nr v 2
 
657
.                               \" check if cont page needs to be ejected
 
658
.in 0
 
659
.if \\nc=1 \{\
 
660
.                               \" - if no abstract overflow
 
661
.       if \\na=0 .EJ
 
662
.       if \\na>0 \{\
 
663
.                               \"or if abstract over but no room for list overfl
 
664
.               ie \\nv<2 .EJ
 
665
.                               \" just tk line if abstract over & room for list
 
666
.               el .TK \}
 
667
.       FT
 
668
.       ie \\ne=0 \{\
 
669
.               if \\ng>4 .if \\ni>4 .DL "Complete Copy" "Cover Sheet Only"
 
670
.               if \\ng>4 .if !\\ni>4 .DL "Complete Copy" ""
 
671
.               if !\\ng>4 .if \\ni>4 .DL "" "Cover Sheet Only" \}
 
672
.       el \{\
 
673
.               if \\ng>4 .if \\ni>4 .DL "Complete Copy (continued)" "Cover Sheet Only (continued)"1
 
674
.               if \\ng>4 .if !\\ni>4 .DL "Complete Copy (continued)" ""
 
675
.               if !\\ng>4 .if \\ni>4 .DL "" "Cover Sheet Only (continued)" \}
 
676
.       mk z
 
677
.       nr q \\n(.t/\\nl
 
678
'''\"                                   put out complete copy list overflow
 
679
.       in 0.2i
 
680
.       ZO
 
681
.       in 0
 
682
.       mk x
 
683
.       sp|\\nzu
 
684
.       in 4i
 
685
'''\"                                   put out cover sheet list overflow
 
686
.       ZD
 
687
.       mk y
 
688
.       in 0
 
689
.       if \\nx-\\ny .sp|\\nxu
 
690
.       TK \}
 
691
..
 
692
.de ZP                                  \"compute total pages and diversion lengths
 
693
'''\"                           calculate vert. units for cc overflow (if any)
 
694
.ie \\ng>4 .nr v (\\ng)*\\nl
 
695
.el .nr v 0
 
696
'''\"                                   also for cs overflow (if any)
 
697
.ie \\ni>4 .nr w (\\ni)*\\nl
 
698
.el .nr w 0
 
699
.ie \\nv>\\nw .nr j \\nv
 
700
.el .nr j \\nw
 
701
.                                       \" set c=1 if either g or i >0
 
702
.if \\ng>4 .nr c 1
 
703
.if \\ni>4 .nr c 1
 
704
.                                       \" calculate total pages in job (default 2)
 
705
.                                       \" a1 - page 1 portion abstract (units)
 
706
.nr a1 \\nyu-\\nxu-1v
 
707
.ie \\n(la>\\n(a1 \{\
 
708
.                                       \" ar - remainder abstract (units)
 
709
.       nr ar \\n(la-\\n(a1
 
710
.       nr tp \\n+(tp
 
711
.                                       \" a2 - available continuation page space
 
712
.                                       \" m1 is mark after tk line after title
 
713
.                                       \" 2v for Abstract (continued) + one blank
 
714
.       nr a2 11.0i-\\n(m1-2v
 
715
.       ZZ \}
 
716
.el .if \\nc>0 .nr tp \\n+(tp
 
717
..
 
718
.de ZZ                          \" ZZ = mm(t1)
 
719
.ie \\n(ar>\\n(a2 \{\
 
720
.       nr ar \\n(ar-\\n(a2
 
721
.       nr tp \\n+(tp
 
722
.       ZZ \}
 
723
.el .if \\n(ar+\\nj>\\n(a2 .nr tp \\n+(tp
 
724
..
 
725
'''\"
 
726
'''\" main macro to handle output of cover sheet
 
727
'''\"           mm(CS)
 
728
.de SC
 
729
.nr CS 0
 
730
.nr ST 1
 
731
.if \\nu=0 \{\
 
732
.       tm WARNING: author must be supplied \}
 
733
.if \\no=0 \{\
 
734
.       tm WARNING: document title must be supplied \}
 
735
.if \\nm=0 \{\
 
736
.       tm WARNING: memorandum type undefined or unknown \}
 
737
.if \\nm=1 .if \\nb=0 \{\
 
738
.       tm WARNING: technical memoranda must have at least one mercury class \}
 
739
.if \\nn=0 \{\
 
740
.       tm WARNING: document number must be supplied \}
 
741
.XE
 
742
.ll 7.5i
 
743
.ft 1
 
744
.if \\n(nl .bp
 
745
.in 0
 
746
.HD
 
747
'''\" the rs is to restore spacing - ditches big space at top
 
748
.rs
 
749
.sp1
 
750
.sp 0.05i
 
751
.nf
 
752
.ps 16
 
753
.ft 3
 
754
.ta 4.85i
 
755
.                                       \" put out page 1 heading
 
756
        Document Cover Sheet
 
757
.wh 0 HD
 
758
.sp 0.1i
 
759
.ta 0.15i 4.55i
 
760
        \s36\(FA\s0     \\*(t( 
 
761
.ft
 
762
.ps 10
 
763
.HX
 
764
.sp 0.05i
 
765
.ft 3
 
766
.ie \\nu>1 .ds u) s
 
767
.el .ds u)
 
768
.ta 0.5i 3.0i 3.95i 5.25i
 
769
        Author\\*(u) (Computer Address) Location        Phone Number    Company (if other than BL)
 
770
.ft
 
771
'''\"                                   output author info
 
772
.ZI
 
773
.if !'\\*(r('' \{\
 
774
.       ta 0.3i 2.6i
 
775
        \\*(r(  (Responsible BL Person) \}
 
776
.TK
 
777
.sp 0.05i
 
778
.ft 3
 
779
.ta 1.0i 3.3i 5.55i
 
780
        Document No\\*(v).      Filing Case No\\*(w).   Project No\\*(x).
 
781
.ft
 
782
.sp 0.05i
 
783
'''\"                                   output document number
 
784
.ZN
 
785
.TK
 
786
'''\"                                   output keywords if they exist
 
787
.if \\nk>0 \{\
 
788
.       ft 3
 
789
Keywords:
 
790
.       ft
 
791
.       sp 0.05i
 
792
.       ti 0.2i
 
793
\\*(k)
 
794
.       TK \}
 
795
'''\"                                   output mercury info if it exists
 
796
.if \\nb>0 \{\
 
797
.       ft 3
 
798
MERCURY Announcement Bulletin Sections
 
799
.       ft
 
800
.       sp 0.05i
 
801
.       ta 0.6i 3.1i 5.6i
 
802
.       ps 8
 
803
.       if \\nb>3 \\*(b)
 
804
\\*(a)
 
805
.       ps
 
806
.       TK \}
 
807
.ft 3
 
808
Abstract
 
809
.ft
 
810
.mk x
 
811
.nr b1 \\nx/\\n(.v+1
 
812
.nr b2 (\\n(b1*\\n(.v)-\\nx
 
813
.sp \\n(b2u
 
814
.mk x
 
815
'''\" calculate position (19v includes 2v to print version at bottom of page)
 
816
.nr y \\n(lpv-19v
 
817
.if \\n(F4>0 .nr y \\ny-\\n(F4
 
818
.sp|\\nyu
 
819
.sp -1
 
820
.ZP
 
821
'''\"                                   handle abstract page 1 continuation
 
822
.ie \\n(la>\\n(a1 \{\
 
823
.       ce
 
824
.       ft2
 
825
(continued on page iii)
 
826
.       ft1
 
827
.       br \}
 
828
.el .sp1
 
829
.if \\n(F4>0 \{\
 
830
.       FA
 
831
.       FG \}
 
832
.TK
 
833
.ps 8
 
834
.vs 10
 
835
.nr qq \\$1+\\$2+\\n(tp
 
836
\f3Total Pages\f1 (including document cover sheet):  \\s+2\\n(qq\\s-2
 
837
.ie !'\\*(e('' \{\
 
838
Supersedes or amends document number \\*(e(. \}
 
839
.el .sp
 
840
.ps
 
841
.vs
 
842
.mk z
 
843
.sp .67i
 
844
'''\"                                   output proprietary notice if it exists
 
845
.if \\np>0 \{\
 
846
.ft 2
 
847
.ti (4i-\\w'\\*(o)'u)/2u
 
848
\\*(o)
 
849
.ft
 
850
.ti (4i-\\w'\\*(p)'u)/2u
 
851
\\*(p)
 
852
.ti (4i-\\w'\\*(q)'u)/2u
 
853
\\*(q) \}
 
854
.sp |\\nzu+11v
 
855
.ta 5.35i
 
856
\\s8\\*(ve\\s0
 
857
.ie !'\\*(s)'' \{\
 
858
\s8Timestamp: \\*(s)\s0 BELL LABORATORIES \}
 
859
.el \{\
 
860
        BELL LABORATORIES \}
 
861
.sp|\\nzu
 
862
.sp 1
 
863
.ft 3
 
864
.ti 5.25i
 
865
\\*(x(
 
866
.ft
 
867
.sp|\\nxu
 
868
.in 0.2i
 
869
.nf
 
870
'''\"                                   abstract
 
871
.if !\\n(la=\\n(a1 \{\
 
872
.       wh -0.25i ST \}
 
873
.pl \\nyu
 
874
.ta 0.5i 1.0i 1.5i 2.0i 2.5i
 
875
.FB
 
876
.ft 1
 
877
'''\"                                   output the abstract
 
878
.WB
 
879
.if \\n(la=\\n(a1 .sp-1
 
880
.rn ZB XX
 
881
.wh -0.25i FC
 
882
'''\"                                   output continuation page
 
883
.CP
 
884
'bp
 
885
.FT
 
886
.ft 1
 
887
.in 0
 
888
.wh 0 HD
 
889
.nf
 
890
.ft 3
 
891
.ta 5.00i
 
892
.nr tc \\n(tp
 
893
Initial Distribution Specifications     \\*(N1\f2 (page ii of \\n(tc)\f3
 
894
.ft 1
 
895
.TK
 
896
.if \\ne>0 \{\
 
897
.       DL "     Complete Copy" "     Cover Sheet Only"
 
898
.       mk z
 
899
'''\"                                   put out complete copy list
 
900
.       in 0.2i
 
901
.       ZC
 
902
.       in 0
 
903
.       if !\\ng=0 \{\
 
904
.               ft 2
 
905
.               ti 1.25i
 
906
(continued)
 
907
.               ft 1 \}
 
908
.       sp|\\nzu
 
909
.       in 4i
 
910
'''\"                                   put out cover sheet list
 
911
.       ZS
 
912
.       if !\\ni=0 \{\
 
913
.               ft 2
 
914
.               ti 4.75i
 
915
(continued)
 
916
.               ft 1 \}
 
917
.       in 0
 
918
'''\"                                   starter space value - then tailor
 
919
.       sp|5
 
920
.       sp \\ne
 
921
.       TK \}
 
922
.if \\nr=1 \{\
 
923
\f3Government Security Classified\f1
 
924
.       ft 1
 
925
.       sp -0.05i
 
926
.       TK \}
 
927
\f3Future Lucent Technologies Distribution by ITDS\f1
 
928
.ti 0.5i
 
929
.sp 0.05i
 
930
.ie \\n(ra=2 \{\
 
931
\f3DO NOT RELEASE\f1 to any Lucent Technologies employee without appropriate approval for each request. \}
 
932
.el \{\
 
933
\f3RELEASE\f1 to any Lucent Technologies employee (excluding contract employees). \}
 
934
.TK
 
935
'''\"                                   put out author signature section
 
936
.ft 3
 
937
Author Signature\\*(u)
 
938
.ft 1
 
939
.sp1
 
940
.ta 2.635i 5.25i
 
941
\\*(m!
 
942
.ta 0.25i 2.875i 5.5i
 
943
\\*(m(
 
944
.if \\nu>3 \{\
 
945
.       sp 0.1i
 
946
.       ta 2.635i 5.25i
 
947
\\*(n!
 
948
.       ta 0.25i 2.875i 5.5i
 
949
\\*(n( \}
 
950
.if \\nu>6 \{\
 
951
.       sp 0.1i
 
952
.       ta 2.635i 5.25i
 
953
\\*(o!
 
954
.       ta 0.25i 2.875i 5.5i
 
955
\\*(o( \}
 
956
.sp -0.1i
 
957
.TK
 
958
'''\"                                   output organizational approval section
 
959
.ie \\np>1 \{\
 
960
\f3Organizational Approval\f1  (Department Head approval \f3required\ff1 for \f2\\*(o)\f1.) \}
 
961
.el \{\
 
962
\f3Organizational Approval\f1  (Optional) \}
 
963
.sp 1
 
964
.ta 2.635i 5.25i
 
965
\\*(x!
 
966
.       ta 0.25i 2.875i 5.5i
 
967
\\*(Z1
 
968
.if \\nn>3 \{\
 
969
.       sp .1i
 
970
.ta 2.635i 5.25i
 
971
\\*(y! \}
 
972
.if \\nn>6 \{\
 
973
.       sp .1i
 
974
\\*(z! \}
 
975
.sp -0.1i
 
976
.TK
 
977
'''\"                                   recipient section always output
 
978
.ft 3
 
979
For Use by Recipient of Cover Sheet:
 
980
.ft 1
 
981
.ps -3
 
982
.vs -4
 
983
.sp.05i
 
984
.mk z
 
985
 Computing network users may order copies via the \f2library \-k\f1 command;
 
986
  for information, type \f2man library\f1 after the UNIX prompt.
 
987
'''.sp1
 
988
.rn fo xx
 
989
 Otherwise:
 
990
  Enter PAN if BL (or SS# if non-BL). \l'1.5i'
 
991
  Return this sheet to any ITDS location.
 
992
.sp|\\nzu
 
993
.in 4i
 
994
Internal Technical Document Service
 
995
'''.sp1
 
996
.ta 1i 2i 3i
 
997
( ) AK 2H-28    ( ) IH 7M-103   ( ) DR 2F-19    ( ) NW-ITDS
 
998
( ) ALC 1B-102  ( ) MV 1L-19    ( ) INH 1C-114  ( ) PR 5-2120
 
999
( ) CB 30-2011  ( ) WH 3E-204   ( ) IW 2Z-156
 
1000
( ) HO 4F-112           ( ) MT 3B-117
 
1001
.in
 
1002
.ps
 
1003
.vs
 
1004
.SR
 
1005
..
 
1006
.       \"IZ - initialization
 
1007
.de IZ
 
1008
.FB
 
1009
.nr TN 0
 
1010
.em EM
 
1011
.po 1i
 
1012
.nr PO 1i
 
1013
.if \\n(FM=0 .nr FM 1i
 
1014
.nr YY 0-\\n(FMu
 
1015
.if !\\n(PD .if n nr PD 1v
 
1016
.if t .if !\\n(PD .nr PD 0.3v
 
1017
.wh 0 NP
 
1018
.wh \\n(.pu-\\n(FMu FO
 
1019
.ch FO 16i
 
1020
.wh \\n(.pu-\\n(FMu FX
 
1021
.ch FO \\n(.pu-\\n(FMu
 
1022
.if t .wh -\\n(FMu/2u BT
 
1023
.if n .wh -\\n(FMu/2u-1v BT
 
1024
..
 
1025
.\"             macro to restore ms foiling
 
1026
.de SR
 
1027
.nr BE 0
 
1028
.nr 1T 1
 
1029
.nr FM 0
 
1030
.nr PD 0
 
1031
.nr HM 0
 
1032
.nr KG 0
 
1033
.nr FP 0
 
1034
.nr GA 0
 
1035
.nr FP 0
 
1036
.\" changed rn F5 FE added rn FJ FS
 
1037
.rn FK FE
 
1038
.rn FJ FS
 
1039
.if '\\$1'' .bp
 
1040
.if !'\\$1'' \{\
 
1041
.di ZA
 
1042
.ce
 
1043
\\*(a(
 
1044
.sp
 
1045
.WB
 
1046
.di
 
1047
.rn ZA WB\}
 
1048
.nr FC -1
 
1049
.nr % 1
 
1050
.IZ
 
1051
.rm IZ
 
1052
.if '\\$1'' .RT
 
1053
.ds MN \\*(N1 \\*(N2 \\*(N3 \\*(N4 \\*(N5
 
1054
.nr MM \\nn
 
1055
.nr MC \\n(fc
 
1056
.nr MG \\n(wp
 
1057
.nr NA \\nu
 
1058
.if '\\n(ST'1' \{\
 
1059
'''.so /usr/lib/tmac/tmac.rscover XXX
 
1060
.so \*(.P/lib/tmac/tmac.rscover
 
1061
. \" a line for troff to eat
 
1062
.S1 \}
 
1063
.ll 6i
 
1064
.nr LL 6i
 
1065
.rr a b c d e f g h i j k
 
1066
.rr l m n o p q r s t u
 
1067
.rr v w x y z np tp nc tc
 
1068
.rr ud u! m2 dv
 
1069
.rr lp np la a1 a2 ar wp fc m1
 
1070
.rm DT TI AH SE KW TY NU MY
 
1071
.rm PR CI CO OC CV OV CE HD
 
1072
.rm FC ST TK HX HC DL EJ
 
1073
.rm CP SC a) b) k) N1 p) q) r)
 
1074
.rm N2 N3 N4 N5 X1 X2 X3 X4 X5
 
1075
.rm X1 X2 X3 X4 X5 F1 F2 F3 F4
 
1076
.rm F5
 
1077
.rm d) o) s) ve m! n! o! e( r(
 
1078
.rm x! y! z! x( d! ve u)
 
1079
.rm t) w) x) y) z) a( b( c( m(
 
1080
.rm n( o( p( s( t( SA ZI ZC ZO
 
1081
.rm ZS ZD ZN FT FB CX NN GS
 
1082
.rm ZB XX ZP ZZ
 
1083
.rm TM IM MF MR LT OK RP TR
 
1084
.rm TX AU AX AI AE SY S2 S0
 
1085
.rm S3
 
1086
..
 
1087
.de RP
 
1088
.nr ST 2
 
1089
.SS
 
1090
..
 
1091
.de TR
 
1092
.nr ST 3
 
1093
.ds MN \\$1
 
1094
.SS
 
1095
..
 
1096
.de SS          \"RP or TR rename the world so old macros called
 
1097
.rm SG
 
1098
.nr CS 0
 
1099
.nr BE 0
 
1100
.nr 1T 0
 
1101
.nr FM 0
 
1102
.nr PD 0
 
1103
.nr HM 0
 
1104
.nr KG 0
 
1105
.nr FP 0
 
1106
.nr GA 0
 
1107
.nr FP 0
 
1108
.ll 6i
 
1109
.nr LL 6i
 
1110
.\" changed rn F5 FE added rn FJ FS
 
1111
.rn F6 FE
 
1112
.nr FC -1
 
1113
.nr % 1
 
1114
.IZ
 
1115
.rm IZ
 
1116
.pn 0
 
1117
.de TI
 
1118
.TL
 
1119
\\..
 
1120
.de SA
 
1121
.AB \\\\$1
 
1122
\\..
 
1123
.de SE
 
1124
.AE
 
1125
\\..
 
1126
.de AH
 
1127
.AU
 
1128
\\\\$1
 
1129
\\..
 
1130
.de DT
 
1131
.ND \\\\$1 \\\\$2 \\\\$3
 
1132
\\..
 
1133
.br
 
1134
.rr a b c d e f g h i j k
 
1135
.rr l m n o p q r s t u
 
1136
.rr v w x y z np tp nc tc
 
1137
.rr ud u! m2 dv
 
1138
.rr lp np la a1 a2 ar wp fc m1
 
1139
.rm DT KW TY NU MY
 
1140
.rm PR CI OC OV HD
 
1141
.rm FC ST TK HX HC DL EJ
 
1142
.rm CP SC a) b) k) N1 p) q) r)
 
1143
.rm d) o) s) ve m! n! o! e( r(
 
1144
.rm x! y! z! x( d! ve u)
 
1145
.rm t) w) x) y) z) a( b( c( m(
 
1146
.rm n( o( p( s( t( ZI ZC ZO
 
1147
.rm ZS ZD ZN FT FB CX NN GS
 
1148
.rm ZB XX ZP ZZ
 
1149
.rm TM IM MF MR LT
 
1150
..