/usr/share/groff/1.21/tmac/pspic.tmac is in groff-base 1.21-7.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | .\" pspic.tmac
.\"
.\" Define the PSPIC macro.
.\"
.\" When used other than with -Tps, -Tdvi, -Thtml, or -Txhtml it draws a box
.\" around where the picture would go.
.\"
.\" Usage:
.\"
.\" .PSPIC [-L|-R|-C|-I <indent>] <file> [<width> [<height>]]
.
.do if d PSPIC .nx
.
.nr _C \n(.C
.cp 0
.
.de PSPIC
. nr ps-offset-mode 0
. \" left-aligned?
. ie '\\$1'-L' \{\
. nr ps-offset-mode 1
. shift
. HTML-DO-IMAGE \\$1 l
. \}
. el \{\
. \" right-aligned?
. ie '\\$1'-R' \{\
. nr ps-offset-mode 2
. shift
. HTML-DO-IMAGE \\$1 r
. \}
. el \{\
. \" indented?
. ie '\\$1'-I' \{\
. nr ps-offset-mode 3
. nr ps-offset (m;\\$2)
. shift 2
. HTML-DO-IMAGE \\$1 i
. \}
. el \{\
. \" centered is the default
. if '\\$1'-C' \
. shift
. HTML-DO-IMAGE \\$1 c
. \}
. \}
. \}
.
. br
.
. \" get bounding box
. psbb \\$1
. if (\\n[llx] : \\n[lly] : \\n[urx] : \\n[ury]) \{\
. nr ps-wid (\\n[urx] - \\n[llx])
. nr ps-ht (\\n[ury] - \\n[lly])
. if (\\n[ps-wid] < 0) \
. nr ps-wid (-\\n[ps-wid])
. if (\\n[ps-ht] < 0) \
. nr ps-ht (-\\n[ps-ht])
.
. \" if we have a <width> parameter, use it as the final
. \" image width; otherwise we use the image's natural width
. \" or the current line length, whatever is smaller
. ie (\\n[.$] >= 2) \
. nr ps-deswid (i;\\$2)
. el \
. nr ps-deswid ((\\n[.l] - \\n[.i]) <? \\n[ps-wid]p)
.
. \" compute the final image height (with proper rounding),
. \" based on the image's aspect
. nr ps-desht (\\n[ps-deswid] * 1000 + (\\n[ps-wid] / 2) \
/ \\n[ps-wid] * \\n[ps-ht] \
+ 500 / 1000)
.
. \" if we have a <height> parameter, use it as the final
. \" image height in case it is smaller than the height
. \" value we have just computed
. if ((\\n[.$] >= 3) & (\\n[ps-desht] > (i;0\\$3))) \{\
. nr ps-desht (i;\\$3)
. \" recompute the final image width since we always
. \" keep the correct image aspect
. nr ps-deswid (\\n[ps-desht] * 1000 + (\\n[ps-ht] / 2) \
/ \\n[ps-ht] * \\n[ps-wid] \
+ 500 / 1000)
. \}
.
. \" reserve vertical space for image
. ne (\\n[ps-desht]u + 1v)
.
. \" compute image offset w.r.t. the current left margin
. if (\\n[ps-offset-mode] == 0) \
. nr ps-offset (\\n[.l] - \\n[.i] - \\n[ps-deswid] / 2)
. if (\\n[ps-offset-mode] == 1) \
. nr ps-offset 0
. if (\\n[ps-offset-mode] == 2) \
. nr ps-offset (\\n[.l] - \\n[.i] - \\n[ps-deswid])
.
. ie '\*[.T]'dvi' \{\
. \" prepare values for \special{psfile=...} as needed by dvips
. ie (\\n[ps-wid]p == \\n[ps-deswid]) \{\
. ds ps-scale \" empty
. ds ps-hoffset hoffset=-\\n[llx]
. ds ps-voffset voffset=-\\n[lly]
. \}
. el \{\
. nr ps-scale (\\n[ps-deswid] * 100 / \\n[ps-wid]p)
. nr ps-hoffset (-\\n[llx] * \\n[ps-scale] / 100)
. nr ps-voffset (-\\n[lly] * \\n[ps-scale] / 100)
. ds ps-scale hscale=\\n[ps-scale] vscale=\\n[ps-scale]
. ds ps-hoffset hoffset=\\n[ps-hoffset]
. ds ps-voffset voffset=\\n[ps-voffset]
. \}
.
\h'\\n[ps-offset]u'\
\v'\\n[ps-desht]u'\
\X'psfile=\\$1 \\*[ps-hoffset] \\*[ps-voffset] \\*[ps-scale]'
. \}
. el \{\
. ie '\*[.T]'ps' \{\
. \" prepare values for grops; the `ps-invis' and `ps-endinvis' escapes
. \" are for groff's -X switch to provide a PS preview with xditview:
. \" it uses -Tps for formatting but xditview can't handle EPS files,
. \" thus alternative code is enclosed between those two escapes
. ds ps-invis \X'ps: invis'
. ds ps-endinvis \X'ps: endinvis'
. ds ps-import \X'ps: import \E$1 \En[llx] \En[lly] \En[urx] \En[ury] \
\En[ps-deswid] \E*[ps-desht]'
. \}
. el \{\
. ds ps-invis
. ds ps-endinvis
. ds ps-import
. \}
.
. ie (\\n[.$] >= 3) \
. ds ps-desht \\n[ps-desht]
. el \
. ds ps-desht \" empty
.
\h'\\n[ps-offset]u'\
\\*[ps-invis]\
\# horizontally, the rectangle is slightly smaller than the image
\# to compensate the line thickness (especially needed for TTY devices)
\Z'\D'p 0 \\n[ps-desht]u \
(\\n[ps-deswid]u - \\n[.H]u) 0 \
0 -\\n[ps-desht]u''\
\# for convenience we also display the image file name (centered vertically);
\Z'\v'((\\n[ps-desht]u / 2u) \
+ (\w'\\$1'u * 0) \
+ ((\\n[rst]u + \\n[rsb]u) / 2u))'\h'1m'\\$1'\
\\*[ps-endinvis]\
\v'\\n[ps-desht]u'\
\\*[ps-import]
. \}
.
. br
. sp \\n[ps-desht]u
. \}
. HTML-IMAGE-END
..
.
.cp \n[_C]
.
.\" end of pspic.tmac
|