Annotation of researchv10no/cmd/postscript/mpictures/tmac.pictures, revision 1.1

1.1     ! root        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: ..

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.