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