Blame


1 13f7391e 2004-05-15 devnull .de PI \" Picture Include
2 13f7391e 2004-05-15 devnull . \" $1=file(page) $2=height,width,yoff,xoff $3=flags
3 13f7391e 2004-05-15 devnull . \" Height, width, xoff, and yoff are for the frame, flags is for the
4 13f7391e 2004-05-15 devnull . \" picture. Default dimensions are inches.
5 13f7391e 2004-05-15 devnull \\X'PI:\\n(.o:\\n(.i:\\n(.l:\\n(.t:\\$1:\\$2:\\$3:'\\c
6 13f7391e 2004-05-15 devnull ..
7 13f7391e 2004-05-15 devnull .nr FT 0
8 13f7391e 2004-05-15 devnull .de BP \" Begin a Picture
9 13f7391e 2004-05-15 devnull . \"
10 13f7391e 2004-05-15 devnull . \" $1=file(page) $2=height $3=width $4=position $5=offset $6=flags $7=label
11 13f7391e 2004-05-15 devnull . \"
12 13f7391e 2004-05-15 devnull . \" Height, width, position, and offset are for the frame, flags is for
13 13f7391e 2004-05-15 devnull . \" the picture. The postion flag should be l, c, r, or "". Omitting the
14 13f7391e 2004-05-15 devnull . \" position argument is also allowed for compatibility with the original
15 13f7391e 2004-05-15 devnull . \" version of the macro. In that case offset is taken relative to your
16 13f7391e 2004-05-15 devnull . \" left margin.
17 13f7391e 2004-05-15 devnull .if \\n(FT>1 .EP
18 13f7391e 2004-05-15 devnull . \" Need these when we switch environments.
19 13f7391e 2004-05-15 devnull .nr Ov \\n(.v
20 13f7391e 2004-05-15 devnull .nr Oi \\n(.i
21 13f7391e 2004-05-15 devnull .nr Ol \\n(.l
22 13f7391e 2004-05-15 devnull . \" Remember the arguments - sometimes as both a string and number register.
23 13f7391e 2004-05-15 devnull .nr $2 \\$2i
24 13f7391e 2004-05-15 devnull .nr $3 \\$3i
25 13f7391e 2004-05-15 devnull .nr $4 \\$4i
26 13f7391e 2004-05-15 devnull .ds $4 \\$4
27 13f7391e 2004-05-15 devnull .nr $5 \\$5i
28 13f7391e 2004-05-15 devnull .ds $5 \\$6
29 13f7391e 2004-05-15 devnull .ds $6 \\$7
30 13f7391e 2004-05-15 devnull . \" Accept a few unadvertised position flags.
31 13f7391e 2004-05-15 devnull .if '\\*($4'L' .ds $4 l
32 13f7391e 2004-05-15 devnull .if '\\*($4'C' .ds $4 c
33 13f7391e 2004-05-15 devnull .if '\\*($4'R' .ds $4 r
34 13f7391e 2004-05-15 devnull . \" A null with more than three arguments means l.
35 13f7391e 2004-05-15 devnull .if \\n(.$>3 .if '\\*($4'' .ds $4 l
36 13f7391e 2004-05-15 devnull . \" Default frame dimensions if missing, zero, or null.
37 13f7391e 2004-05-15 devnull .if !\\n($2>0 .nr $2 3.0i
38 13f7391e 2004-05-15 devnull .if !\\n($3>0 .nr $3 \\n(.lu-\\n(.iu-\\n($4u
39 13f7391e 2004-05-15 devnull .if !\\n($3>0 .nr $3 \\n($2u
40 13f7391e 2004-05-15 devnull . \" Figure out the offset that will be used the rest of the way.
41 13f7391e 2004-05-15 devnull .if '\\*($4'l' .nr $4 \\n($5u
42 13f7391e 2004-05-15 devnull .if '\\*($4'c' .nr $4 (\\n(.lu-\\n(.iu-\\n($3u)/2u+\\n($5u
43 13f7391e 2004-05-15 devnull .if '\\*($4'r' .nr $4 \\n(.lu-\\n(.iu-\\n($3u+\\n($5u
44 13f7391e 2004-05-15 devnull . \" If we haven't recognized the position flag assume it wasn't given and
45 13f7391e 2004-05-15 devnull . \" treat argument four as an offset from the left.
46 13f7391e 2004-05-15 devnull .if !'\\*($4'l' .if !'\\*($4'c' .if !'\\*($4'r' .ds $5 \\$5
47 13f7391e 2004-05-15 devnull .if !'\\*($4'l' .if !'\\*($4'c' .if !'\\*($4'r' .ds $6 \\$6
48 13f7391e 2004-05-15 devnull . \" Set increments for line length and indent.
49 13f7391e 2004-05-15 devnull .nr Ii \\n($3u+\\n($4u+.1i
50 13f7391e 2004-05-15 devnull .nr Il \\n(.lu-\\n(.iu-\\n($4u+.1i
51 13f7391e 2004-05-15 devnull . \" Set the frame type to one of:
52 13f7391e 2004-05-15 devnull . \" 0 - frame is as wide as a line of text - skip over it.
53 13f7391e 2004-05-15 devnull . \" 1 - fits in left or right margins
54 13f7391e 2004-05-15 devnull . \" 2 - fill with text on the right
55 13f7391e 2004-05-15 devnull . \" 3 - on the left
56 13f7391e 2004-05-15 devnull . \" 4 - or on both sides of the frame
57 13f7391e 2004-05-15 devnull . \" 5 - only set in EP if FT was 4 and now filling on the right.
58 13f7391e 2004-05-15 devnull . \" Assume the frame is as wide as a line of text, then check dimensions
59 13f7391e 2004-05-15 devnull . \" to see what's really true. The order of these tests is important!
60 13f7391e 2004-05-15 devnull .nr FT 0
61 13f7391e 2004-05-15 devnull .if \\n($4u>1.0i .nr FT 3
62 13f7391e 2004-05-15 devnull .if \\n($4u+\\n(.iu>=\\n(.lu .nr FT 1
63 13f7391e 2004-05-15 devnull .if \\n($3u+\\n($4u+\\n(.iu+1.0i<\\n(.lu .nr FT 2
64 13f7391e 2004-05-15 devnull .if \\n($3u+\\n($4u<=0 .nr FT 1
65 13f7391e 2004-05-15 devnull .if \\n(FT=2 .if \\n($4u>1.0i .nr FT 4
66 13f7391e 2004-05-15 devnull . \" Ask for some vertical space - labeled pictures need a little extra,
67 13f7391e 2004-05-15 devnull . \" margin pictures a little less.
68 13f7391e 2004-05-15 devnull .if \\n(FT=1 .if '\\*($6'' .ne \\n($2u
69 13f7391e 2004-05-15 devnull .if \\n(FT=1 .if !'\\*($6'' .ne \\n($2u+2v
70 13f7391e 2004-05-15 devnull .if !\\n(FT=1 .if '\\*($6'' .ne \\n($2u+3v
71 13f7391e 2004-05-15 devnull .if !\\n(FT=1 .if !'\\*($6'' .ne \\n($2u+5v
72 13f7391e 2004-05-15 devnull . \" Save our place, draw the picture, label it, and return. Need precise
73 13f7391e 2004-05-15 devnull . \" control of when \X'...' is put out - thus the new environment.
74 13f7391e 2004-05-15 devnull .mk Oh
75 13f7391e 2004-05-15 devnull .ev 1
76 13f7391e 2004-05-15 devnull .in \\n(Oiu
77 13f7391e 2004-05-15 devnull .ll \\n(Olu
78 13f7391e 2004-05-15 devnull .vs \\n(Ovu
79 13f7391e 2004-05-15 devnull .if \\n(FT=1 .sp -1v
80 13f7391e 2004-05-15 devnull .if \\n(FT=1 .PI \\$1 \\n($2u,\\n($3u,\\n(.vu,\\n($4u t\\*($5
81 13f7391e 2004-05-15 devnull .if !\\n(FT=1 .PI \\$1 \\n($2u,\\n($3u,\\n(.vu,\\n($4u \\*($5
82 13f7391e 2004-05-15 devnull .in
83 13f7391e 2004-05-15 devnull .ll
84 13f7391e 2004-05-15 devnull .vs
85 13f7391e 2004-05-15 devnull .ev
86 13f7391e 2004-05-15 devnull .lt \\n($3u
87 13f7391e 2004-05-15 devnull .tl \(ts\(ts\\h'\\n($4u+\\n(.iu'\\v'\\n($2u+1.5v'\\*($6\\v'-\\n($2u-1.5v'\\h'-\\n($4u-\\n(.iu'\(ts\(ts
88 13f7391e 2004-05-15 devnull .lt
89 13f7391e 2004-05-15 devnull 'sp |\\n(Ohu
90 13f7391e 2004-05-15 devnull . \" Figure out what to do with the text that follows.
91 13f7391e 2004-05-15 devnull .if !'\\*($6'' .nr $2 +2v
92 13f7391e 2004-05-15 devnull .if \\n(FT=0 .sp \\n($2u+2v
93 13f7391e 2004-05-15 devnull .if \\n(FT=1 .nr FT 0
94 13f7391e 2004-05-15 devnull .if \\n(FT=2 'in +\\n(Iiu
95 13f7391e 2004-05-15 devnull .if \\n(FT>2 .ll -\\n(Ilu
96 13f7391e 2004-05-15 devnull .if \\n(FT>1 .di BB
97 13f7391e 2004-05-15 devnull .if \\n(FT>1 .dt \\n($2u+2v+1u EP
98 13f7391e 2004-05-15 devnull . \" Clean things up.
99 13f7391e 2004-05-15 devnull .rr $2
100 13f7391e 2004-05-15 devnull .rr $3
101 13f7391e 2004-05-15 devnull .rr $4
102 13f7391e 2004-05-15 devnull .rm $4
103 13f7391e 2004-05-15 devnull .rr $5
104 13f7391e 2004-05-15 devnull .rm $5
105 13f7391e 2004-05-15 devnull .rm $6
106 13f7391e 2004-05-15 devnull .rr Oh
107 13f7391e 2004-05-15 devnull .rr Oi
108 13f7391e 2004-05-15 devnull .rr Ol
109 13f7391e 2004-05-15 devnull .rr Ov
110 13f7391e 2004-05-15 devnull .if \\n(FT=0 .EP
111 13f7391e 2004-05-15 devnull ..
112 13f7391e 2004-05-15 devnull .de EP \" End the Picture - Normally called from a trap, although it can be used
113 13f7391e 2004-05-15 devnull . \" on its own to mark the end of a picture.
114 13f7391e 2004-05-15 devnull .nr Ot 0
115 13f7391e 2004-05-15 devnull .if \\n(.tu<\\n(.pu .nr Ot \\n(.tu
116 13f7391e 2004-05-15 devnull .if \\n(Ot>0 .if \\n(FT=4 .nr FT 3
117 13f7391e 2004-05-15 devnull .if \\n(FT<2 .nr Ot 0
118 13f7391e 2004-05-15 devnull .if \\n(Ot>0 .br
119 13f7391e 2004-05-15 devnull .if \\n(FT=5 .nr Ot 0
120 13f7391e 2004-05-15 devnull .if \\n(FT>1 \{\
121 13f7391e 2004-05-15 devnull . ev 1
122 13f7391e 2004-05-15 devnull . eo
123 13f7391e 2004-05-15 devnull . br
124 13f7391e 2004-05-15 devnull . di
125 13f7391e 2004-05-15 devnull . nf
126 13f7391e 2004-05-15 devnull . in 0
127 13f7391e 2004-05-15 devnull . BB
128 13f7391e 2004-05-15 devnull . in
129 13f7391e 2004-05-15 devnull . fi
130 13f7391e 2004-05-15 devnull . ec
131 13f7391e 2004-05-15 devnull . ev
132 13f7391e 2004-05-15 devnull . rm BB\}
133 13f7391e 2004-05-15 devnull .if \\n(FT=5 \{\
134 13f7391e 2004-05-15 devnull . nr FT 2
135 13f7391e 2004-05-15 devnull ' sp |\\n(Nhu+1v\}
136 13f7391e 2004-05-15 devnull .if \\n(FT=4 \{\
137 13f7391e 2004-05-15 devnull . mk Nh
138 13f7391e 2004-05-15 devnull . nr Nh -1v
139 13f7391e 2004-05-15 devnull . nr FT 5
140 13f7391e 2004-05-15 devnull ' sp -\\n(dnu+1v
141 13f7391e 2004-05-15 devnull ' in +\\n(Iiu
142 13f7391e 2004-05-15 devnull . ll +\\n(Ilu
143 13f7391e 2004-05-15 devnull . di BB
144 13f7391e 2004-05-15 devnull . dt \\n(dnu-2v+1u EP\}
145 13f7391e 2004-05-15 devnull .if \\n(FT=2 'in -\\n(Iiu
146 13f7391e 2004-05-15 devnull .if \\n(FT=3 .ll +\\n(Ilu
147 13f7391e 2004-05-15 devnull .if \\n(FT<4 .nr FT 0
148 13f7391e 2004-05-15 devnull .if \\n(Ot>0 .sp \\n(Otu
149 13f7391e 2004-05-15 devnull .rr Ot
150 13f7391e 2004-05-15 devnull .if \\n(FT=0 \{\
151 13f7391e 2004-05-15 devnull . rr Nh
152 13f7391e 2004-05-15 devnull . rr Ii
153 13f7391e 2004-05-15 devnull . rr Il\}
154 13f7391e 2004-05-15 devnull ..