conrad@jupiter.ucsc.edu (Al Conrad, x2370) (05/12/89)
I am trying to fix the postscript produced by dvi2ps so that I can
preview it with psview. In the following TeXcerpt I had to:
- add /letter {} def at the top.
- change dict def in newfont from 7 to 8.
to sleaze past the first few problems. Now, when it gets to setfont
it doesn't seem to like the font produced by definefont. Does definefont
really work? Has someone already done this?
Thanks,
Al Conrad
conrad@cis.ucsc.edu
-first 250 lienes of a dvi2ps file-----------------------------------
%!PS
executive
/letter {} def
/TeXDict 200 dict def
TeXDict begin
/Resolution 300 def
/Inch {Resolution mul} def
/Mtrx 6 array def
/@letter
{ letter initmatrix
72 Resolution div dup neg scale
1.0333 Inch 10.0166 Inch neg translate
Mtrx currentmatrix pop
} def
/@note
{ note initmatrix
72 Resolution div dup neg scale
1.0333 Inch 10.0166 Inch neg translate
Mtrx currentmatrix pop
} def
/@landscape
{ letter initmatrix
72 Resolution div dup neg scale
Mtrx currentmatrix 0 0.0 put
Mtrx 1 -1.0 put
Mtrx 2 1.0 put
Mtrx 3 0.0 put
Mtrx setmatrix
1 Inch 1.033 Inch translate
Mtrx currentmatrix pop
} def
/@legal
{ legal initmatrix
72 Resolution div dup neg scale
0.9833 Inch 12.933 Inch neg translate
Mtrx currentmatrix pop
} def
/@manualfeed
{ statusdict /manualfeed true put
} def
/@copies
{ /#copies exch def
} def
/@newfont
{ /newname exch def
pop
newname 8 dict def
newname load begin
/FontType 3 def
/FontMatrix [1 0 0 -1 0 0] def
/FontBBox [0 0 1 1] def
/BitMaps 128 array def
/BuildChar {CharBuilder} def
/Encoding 128 array def
0 1 127 {Encoding exch /.undef put} for
end
newname newname load definefont pop
} def
/ch-image {ch-data 0 get} def
/ch-width {ch-data 1 get} def
/ch-height {ch-data 2 get} def
/ch-xoff {ch-data 3 get} def
/ch-yoff {ch-data 4 get} def
/ch-tfmw {ch-data 5 get} def
/CharBuilder
{ /ch-code exch def
/font-dict exch def
/ch-data font-dict /BitMaps get ch-code get def
ch-data null eq not
{ ch-tfmw 0 ch-xoff neg ch-yoff neg ch-width ch-xoff sub ch-height ch-yoff sub
setcachedevice
ch-width ch-height true [1 0 0 1 ch-xoff ch-yoff]
{ch-image} imagemask
}
if
} def
/@sf
{ cvn cvx exec setfont
} def
/@dc
{ /ch-code exch def
dup 0 get
length 2 lt
{ pop [ <00> 1 1 0 0 8.00 ] } if
/ch-data exch def
currentfont /BitMaps get ch-code ch-data put
currentfont /Encoding get ch-code
dup ( ) cvs cvn
put
} def
/@bop0
{
} def
/@bop1
{ pop
erasepage initgraphics
Mtrx setmatrix
/SaveImage save def() pop
0 0 moveto
1 setlinejoin
} def
/@eop
{ showpage
SaveImage restore() pop
} def
/@start
{ @letter
} def
/@end
{ end
} def
/p
{ moveto
} def
/r
{ 0 rmoveto
} def
/l
{ lineto
} def
/rl
{ rlineto
} def
/rc
{ rcurveto
} def
/np
{ /SaveX currentpoint /SaveY exch def def
newpath
} def
/st
{ stroke
SaveX SaveY moveto
} def
/f
{ fill
SaveX SaveY moveto
} def
/s
{ show
} def
/c
{ c-string exch 0 exch put
c-string show
} def
/c-string ( ) def
/ru
{ /dy exch neg def
/dx exch def
/x currentpoint /y exch def def
newpath x y moveto
dx 0 rlineto
0 dy rlineto
dx neg 0 rlineto
closepath fill
x y moveto
} def
/ellipse
{
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix matrix currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arc
savematrix setmatrix
} def
/@SpecialDefaults
{ /hs 8.5 Inch def
/vs 11 Inch def
/ho 0 def
/vo 0 def
/hsc 1 def
/vsc 1 def
/CLIP false def
} def
/@hsize {/hs exch def /CLIP true def} def
/@vsize {/vs exch def /CLIP true def} def
/@hoffset {/ho exch def} def
/@voffset {/vo exch def} def
/@hscale {/hsc exch def} def
/@vscale {/vsc exch def} def
/@setclipper
{ hsc vsc scale
CLIP
{ newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip }
if
} def
/@beginspecial
{ gsave /SpecialSave save def
currentpoint transform initgraphics itransform translate
@SpecialDefaults
@MacSetUp
} def
/@setspecial
{
MacDrwgs
{md begin /pxt ho def /pyt vo neg def end}
{ho vo translate @setclipper}
ifelse
} def
/@endspecial
{ SpecialSave restore
grestore
} def
/MacDrwgs false def
/@MacSetUp
{ userdict /md known
{ userdict /md get type /dicttype eq
{ /MacDrwgs true def
md begin
/psu
/psu load
{ /letter {} def
/note {} def
/legal {} def
statusdict /waittimeout 300 put
/page {pop} def
/pyt vo neg def
/pxt ho def
}
concatprocs
def
/od
/od load
{ @setclipper }
concatprocs
def
end }
if }
if
} def
/concatprocs
{ /p2 exch cvlit def
/p1 exch cvlit def
/p p1 length p2 length add array def
p 0 p1 putinterval
p p1 length p2 putinterval
p cvx
} def
end
TeXDict begin @start
%%Title: agenda.dvi
%%Creator: dvi2ps
%%EndProlog
1 @bop0
[ 518 ] /cmr10.518 @newfont
(cmr10.518) @sf
From: conrad@jupiter.ucsc.edu (Al Conrad, x2370)
Path: jupiter.ucsc.edu!conrad
Newsgroups: comp.windows.news
Subject: Does definefont really work? (for TeX)
Expires:
References:
Sender:
Reply-To: conrad@jupiter.ucsc.edu (Al Conrad, x2370)
Followup-To:
Distribution: world
Organization: University of California, Santa Cruz
Keywords:
From: conrad@jupiter.ucsc.edu (Al Conrad, x2370)
Path: jupiter.ucsc.edu!conrad
Newsgroups: comp.windows.news
Subject: Does definefont really work (for TeX)?
Expires:
References:
Sender:
Reply-To: conrad@jupiter.ucsc.edu (Al Conrad, x2370)
Followup-To:
Distribution: world
Organization: University of California, Santa Cruz
Keywords:
I am trying to fix the postscript produced by dvi2ps so that I can
preview it with psview. In the following TeXcerpt I had to:
- add /letter {} def at the top.
- change dict def in newfont from 7 to 8.
to sleaze past the first few problems. Now, when it gets to setfont
it doesn't seem to like the font produced by definefont. Does definefont
really work? Has someone already done this?
Thanks,
Al Conrad
conrad@cis.ucsc.edu
-first 250 lienes of a dvi2ps file-----------------------------------
%!PS
executive
/letter {} def
/TeXDict 200 dict def
TeXDict begin
/Resolution 300 def
/Inch {Resolution mul} def
/Mtrx 6 array def
/@letter
{ letter initmatrix
72 Resolution div dup neg scale
1.0333 Inch 10.0166 Inch neg translate
Mtrx currentmatrix pop
} def
/@note
{ note initmatrix
72 Resolution div dup neg scale
1.0333 Inch 10.0166 Inch neg translate
Mtrx currentmatrix pop
} def
/@landscape
{ letter initmatrix
72 Resolution div dup neg scale
Mtrx currentmatrix 0 0.0 put
Mtrx 1 -1.0 put
Mtrx 2 1.0 put
Mtrx 3 0.0 put
Mtrx setmatrix
1 Inch 1.033 Inch translate
Mtrx currentmatrix pop
} def
/@legal
{ legal initmatrix
72 Resolution div dup neg scale
0.9833 Inch 12.933 Inch neg translate
Mtrx currentmatrix pop
} def
/@manualfeed
{ statusdict /manualfeed true put
} def
/@copies
{ /#copies exch def
} def
/@newfont
{ /newname exch def
pop
newname 8 dict def
newname load begin
/FontType 3 def
/FontMatrix [1 0 0 -1 0 0] def
/FontBBox [0 0 1 1] def
/BitMaps 128 array def
/BuildChar {CharBuilder} def
/Encoding 128 array def
0 1 127 {Encoding exch /.undef put} for
end
newname newname load definefont pop
} def
/ch-image {ch-data 0 get} def
/ch-width {ch-data 1 get} def
/ch-height {ch-data 2 get} def
/ch-xoff {ch-data 3 get} def
/ch-yoff {ch-data 4 get} def
/ch-tfmw {ch-data 5 get} def
/CharBuilder
{ /ch-code exch def
/font-dict exch def
/ch-data font-dict /BitMaps get ch-code get def
ch-data null eq not
{ ch-tfmw 0 ch-xoff neg ch-yoff neg ch-width ch-xoff sub ch-height ch-yoff sub
setcachedevice
ch-width ch-height true [1 0 0 1 ch-xoff ch-yoff]
{ch-image} imagemask
}
if
} def
/@sf
{ cvn cvx exec setfont
} def
/@dc
{ /ch-code exch def
dup 0 get
length 2 lt
{ pop [ <00> 1 1 0 0 8.00 ] } if
/ch-data exch def
currentfont /BitMaps get ch-code ch-data put
currentfont /Encoding get ch-code
dup ( ) cvs cvn
put
} def
/@bop0
{
} def
/@bop1
{ pop
erasepage initgraphics
Mtrx setmatrix
/SaveImage save def() pop
0 0 moveto
1 setlinejoin
} def
/@eop
{ showpage
SaveImage restore() pop
} def
/@start
{ @letter
} def
/@end
{ end
} def
/p
{ moveto
} def
/r
{ 0 rmoveto
} def
/l
{ lineto
} def
/rl
{ rlineto
} def
/rc
{ rcurveto
} def
/np
{ /SaveX currentpoint /SaveY exch def def
newpath
} def
/st
{ stroke
SaveX SaveY moveto
} def
/f
{ fill
SaveX SaveY moveto
} def
/s
{ show
} def
/c
{ c-string exch 0 exch put
c-string show
} def
/c-string ( ) def
/ru
{ /dy exch neg def
/dx exch def
/x currentpoint /y exch def def
newpath x y moveto
dx 0 rlineto
0 dy rlineto
dx neg 0 rlineto
closepath fill
x y moveto
} def
/ellipse
{
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix matrix currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arc
savematrix setmatrix
} def
/@SpecialDefaults
{ /hs 8.5 Inch def
/vs 11 Inch def
/ho 0 def
/vo 0 def
/hsc 1 def
/vsc 1 def
/CLIP false def
} def
/@hsize {/hs exch def /CLIP true def} def
/@vsize {/vs exch def /CLIP true def} def
/@hoffset {/ho exch def} def
/@voffset {/vo exch def} def
/@hscale {/hsc exch def} def
/@vscale {/vsc exch def} def
/@setclipper
{ hsc vsc scale
CLIP
{ newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip }
if
} def
/@beginspecial
{ gsave /SpecialSave save def
currentpoint transform initgraphics itransform translate
@SpecialDefaults
@MacSetUp
} def
/@setspecial
{
MacDrwgs
{md begin /pxt ho def /pyt vo neg def end}
{ho vo translate @setclipper}
ifelse
} def
/@endspecial
{ SpecialSave restore
grestore
} def
/MacDrwgs false def
/@MacSetUp
{ userdict /md known
{ userdict /md get type /dicttype eq
{ /MacDrwgs true def
md begin
/psu
/psu load
{ /letter {} def
/note {} def
/legal {} def
statusdict /waittimeout 300 put
/page {pop} def
/pyt vo neg def
/pxt ho def
}
concatprocs
def
/od
/od load
{ @setclipper }
concatprocs
def
end }
if }
if
} def
/concatprocs
{ /p2 exch cvlit def
/p1 exch cvlit def
/p p1 length p2 length add array def
p 0 p1 putinterval
p p1 length p2 putinterval
p cvx
} def
end
TeXDict begin @start
%%Title: agenda.dvi
%%Creator: dvi2ps
%%EndProlog
1 @bop0
[ 518 ] /cmr10.518 @newfont
(cmr10.518) @sfdon@BRILLIG.UMD.EDU (Don Hopkins) (05/12/89)
Oops, for some reason another copy of your message got appended onto the end of your message about definefont. Sorry! (In other words, ignore NeWS errors about "From:" being undefined!) In NeWS 1.1, setfont expects a fonttype object, and it's trying to do a setfont to a font dictionary, and barfing. Try applying the following sleaze to the header file: Change the line 58 (or so) from: newname newname load definefont pop To: newname newname load definefont newname exch store -Don