plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

dpost.ps (4620B)


      1 %
      2 % Version 3.3.2 prologue for troff files.
      3 %
      4 
      5 /#copies 1 store
      6 /aspectratio 1 def
      7 /formsperpage 1 def
      8 /landscape false def
      9 /linewidth .3 def
     10 /magnification 1 def
     11 /margin 0 def
     12 /orientation 0 def
     13 /resolution 720 def
     14 /rotation 1 def
     15 /xoffset 0 def
     16 /yoffset 0 def
     17 
     18 /roundpage true def
     19 /useclippath true def
     20 /pagebbox [0 0 612 792] def
     21 
     22 /R  /Times-Roman def
     23 /I  /Times-Italic def
     24 /B  /Times-Bold def
     25 /BI /Times-BoldItalic def
     26 /H  /Helvetica def
     27 /HI /Helvetica-Oblique def
     28 /HB /Helvetica-Bold def
     29 /HX /Helvetica-BoldOblique def
     30 /CW /Courier def
     31 /CO /Courier def
     32 /CI /Courier-Oblique def
     33 /CB /Courier-Bold def
     34 /CX /Courier-BoldOblique def
     35 /PA /Palatino-Roman def
     36 /PI /Palatino-Italic def
     37 /PB /Palatino-Bold def
     38 /PX /Palatino-BoldItalic def
     39 /Hr /Helvetica-Narrow def
     40 /Hi /Helvetica-Narrow-Oblique def
     41 /Hb /Helvetica-Narrow-Bold def
     42 /Hx /Helvetica-Narrow-BoldOblique def
     43 /KR /Bookman-Light def
     44 /KI /Bookman-LightItalic def
     45 /KB /Bookman-Demi def
     46 /KX /Bookman-DemiItalic def
     47 /AR /AvantGarde-Book def
     48 /AI /AvantGarde-BookOblique def
     49 /AB /AvantGarde-Demi def
     50 /AX /AvantGarde-DemiOblique def
     51 /NR /NewCenturySchlbk-Roman def
     52 /NI /NewCenturySchlbk-Italic def
     53 /NB /NewCenturySchlbk-Bold def
     54 /NX /NewCenturySchlbk-BoldItalic def
     55 /ZD /ZapfDingbats def
     56 /ZI /ZapfChancery-MediumItalic def
     57 /S  /S def
     58 /S1 /S1 def
     59 /GR /Symbol def
     60 
     61 /inch {72 mul} bind def
     62 /min {2 copy gt {exch} if pop} bind def
     63 
     64 /setup {
     65 	counttomark 2 idiv {def} repeat pop
     66 
     67 	landscape {/orientation 90 orientation add def} if
     68 	/scaling 72 resolution div def
     69 	linewidth setlinewidth
     70 	1 setlinecap
     71 
     72 	pagedimensions
     73 	xcenter ycenter translate
     74 	orientation rotation mul rotate
     75 	width 2 div neg height 2 div translate
     76 	xoffset inch yoffset inch neg translate
     77 	margin 2 div dup neg translate
     78 	magnification dup aspectratio mul scale
     79 	scaling scaling scale
     80 
     81 	addmetrics
     82 	0 0 moveto
     83 } def
     84 
     85 /pagedimensions {
     86 	useclippath userdict /gotpagebbox known not and {
     87 		/pagebbox [clippath pathbbox newpath] def
     88 		roundpage currentdict /roundpagebbox known and {roundpagebbox} if
     89 	} if
     90 	pagebbox aload pop
     91 	4 -1 roll exch 4 1 roll 4 copy
     92 	landscape {4 2 roll} if
     93 	sub /width exch def
     94 	sub /height exch def
     95 	add 2 div /xcenter exch def
     96 	add 2 div /ycenter exch def
     97 	userdict /gotpagebbox true put
     98 } def
     99 
    100 /addmetrics {
    101 	/Symbol /S null Sdefs cf
    102 	/Times-Roman /S1 StandardEncoding dup length array copy S1defs cf
    103 } def
    104 
    105 /pagesetup {
    106 	/page exch def
    107 	currentdict /pagedict known currentdict page known and {
    108 		page load pagedict exch get cvx exec
    109 	} if
    110 } def
    111 
    112 /decodingdefs [
    113 	{counttomark 2 idiv {y moveto show} repeat}
    114 	{neg /y exch def counttomark 2 idiv {y moveto show} repeat}
    115 	{neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat}
    116 	{neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat}
    117 	{counttomark 2 idiv {y moveto show} repeat}
    118 	{neg setfunnytext}
    119 ] def
    120 
    121 /setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def
    122 
    123 /w {neg moveto show} bind def
    124 /m {neg dup /y exch def moveto} bind def
    125 /done {/lastpage where {pop lastpage} if} def
    126 
    127 /f {
    128 	dup /font exch def findfont exch
    129 	dup /ptsize exch def scaling div dup /size exch def scalefont setfont
    130 	linewidth ptsize mul scaling 10 mul div setlinewidth
    131 	/spacewidth ( ) stringwidth pop def
    132 } bind def
    133 
    134 /changefont {
    135 	/fontheight exch def
    136 	/fontslant exch def
    137 	currentfont [
    138 		1 0
    139 		fontheight ptsize div fontslant sin mul fontslant cos div
    140 		fontheight ptsize div
    141 		0 0
    142 	] makefont setfont
    143 } bind def
    144 
    145 /sf {f} bind def
    146 
    147 /cf {
    148 	dup length 2 idiv
    149 	/entries exch def
    150 	/chtab exch def
    151 	/newencoding exch def
    152 	/newfont exch def
    153 
    154 	findfont dup length 1 add dict
    155 	/newdict exch def
    156 	{1 index /FID ne {newdict 3 1 roll put}{pop pop} ifelse} forall
    157 
    158 	newencoding type /arraytype eq {newdict /Encoding newencoding put} if
    159 
    160 	newdict /Metrics entries dict put
    161 	newdict /Metrics get
    162 	begin
    163 		chtab aload pop
    164 		1 1 entries {pop def} for
    165 		newfont newdict definefont pop
    166 	end
    167 } bind def
    168 
    169 %
    170 % A few arrays used to adjust reference points and character widths in some
    171 % of the printer resident fonts. If square roots are too high try changing
    172 % the lines describing /radical and /radicalex to,
    173 %
    174 %	/radical	[0 -75 550 0]
    175 %	/radicalex	[-50 -75 500 0]
    176 %
    177 % Move braceleftbt a bit - default PostScript character is off a bit.
    178 %
    179 
    180 /Sdefs [
    181 	/bracketlefttp		[201 500]
    182 	/bracketleftbt		[201 500]
    183 	/bracketrighttp		[-81 380]
    184 	/bracketrightbt		[-83 380]
    185 	/braceleftbt		[203 490]
    186 	/bracketrightex		[220 -125 500 0]
    187 	/radical		[0 0 550 0]
    188 	/radicalex		[-50 0 500 0]
    189 	/parenleftex		[-20 -170 0 0]
    190 	/integral		[100 -50 500 0]
    191 	/infinity		[10 -75 730 0]
    192 ] def
    193 
    194 /S1defs [
    195 	/underscore		[0 80 500 0]
    196 	/endash			[7 90 650 0]
    197 ] def