MathGroup Archive 1997

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: postscript problems

  • To: mathgroup at smc.vnet.net
  • Subject: [mg8317] Re: postscript problems
  • From: "P.J. Hinton" <paulh>
  • Date: Sun, 24 Aug 1997 13:24:33 -0400
  • Organization: Wolfram Research, Inc.
  • Sender: owner-wri-mathgroup at wolfram.com

--------------42165D5C40C840163513FFC

j preen wrote:

> hi,
> thanks for the swift reply, here it is:
> hope this is ok for you,
 
I think the problem you are encountering has to do with a problem that
existed in the initial release of the Mathematica 3.0 front end.  The
PostScript export algorithm creates an invalid bounding box, making
the graphic invisible when rendered by a PostScript interpreter.

This problem exists for the front end menu command 

		Edit  -> Save Selection As -> EPS

but not with the kernel command 

		Display["filename.eps", graphic, "EPS"]

I fixed a line of code that now makes the PostScript file visible in 
a previewer, and I have attached it to this message.

There is a very simple fix for this problem, and it is detailed on the 
Wolfram Research Technical Support webpages.  You can find it
in the FAQ section.  I have included a plain text copy of the
fix for you.

The following information is also available from the Technical
Support section of our website at the following URL:

http://www.wolfram.com/support/Graphics/Formats/EPS/FrontEndFix.html

When the intial release of the Mathematica 3.0 notebook front end
saves a graphic as an Encapsulated PostScript file, the EPS code
contains an incorrect bounding box. As a result, the graphic does not
appear when loaded into a PostScript viewer program or when sent to a
printer. Our developers are aware of this problem and it will be fixed
in a future release.

You can fix the problem by replacing the Mathematica text resource
file PostScriptHeader.tr with a corrected version available from our
website.

ftp://mathsource.wolfram.com/pub/outgoing/Support/PostScriptHeader.tr

Simply copy this file into the Mathematica directory

  SystemFiles|FrontEnd|TextResources

replacing the old version of this file. The next time the notebook
front end is started, it will be capable of creating portable EPS
files.

The advantage of generating EPS files using this method is that font
families other than Courier and the Mathematica-specific Math fonts
will be included in the exported graphic.

Note that the application used to render the EPS or the printer used
to print the EPS will need to have the Mathematica fonts available if
you make use of any these font characters. Otherwise, you may get
unusual font substitutions.

For making the Mathematica fonts available to Ghostscript and 
Ghostscript-based applications, see the 

Why don't special characters appear properly when I view an exported EPS
file in Ghostview (Unix) or GSView32 (Windows)?

The PostScript preview programs Ghostview and GSView32 both use the
Ghostscript engine to interpret the PostScript code.  In order for fonts
to be rendered properly, Ghostscript must make use of font files which
are supplied with the software distribution.  For most situations, this
set of fonts will be all you ever need to view a document. 

Mathematica 3.0 ships with a collection of specialized fonts which are
used to generate grouping symbols, Mathematics symbols, Greek letters,
and other special characters.  Ghostscript, by default, is unaware of
these fonts, so it reverts to substituting characters from the Courier
font set. The end result is that special characters do not appear
properly.

The fix for this problem is to edit the configuration file which
associates PostScript font names with font files so that they include
the Mathematica specific fonts.  Mathematica 3.0 ships with Type1 fonts,
which are fully usable by Ghostscript.  

The configuration file is called Fontmap, and it resides in the top
level Ghostscript directory.  Under Unix, this is probably something
like /usr/lib/ghostscript.  Under Windows, the directory is gstools\gsX,
where X is the version of Ghostscript installed on the machine.  

The implementation under Unix requires two steps.  

1) Within the Mathematica directory SystemFiles/Fonts/Type1, create soft
symbolic links having MS-DOS 8+3-compliant filenames.  A suggested
naming convention is given here:

math1___.pfa -> Math1.pfa
math2___.pfa -> Math2.pfa
math3___.pfa -> Math3.pfa 
math4___.pfa -> Math4.pfa
math5___.pfa -> Math5.pfa
math1b__.pfa -> Math1Bold.pfa
math2b__.pfa -> Math2Bold.pfa 
math3b__.pfa -> Math3Bold.pfa 
math4b__.pfa -> Math4Bold.pfa  
math5b__.pfa -> Math5Bold.pfa
math1m__.pfa -> Math1Mono.pfa 
math2m__.pfa -> Math2Mono.pfa 
math3m__.pfa -> Math3Mono.pfa 
math4m__.pfa -> Math4Mono.pfa 
math5m__.pfa -> Math5Mono.pfa
math1mb_.pfa -> Math1Mono-Bold.pfa 
math2mb_.pfa -> Math2Mono-Bold.pfa 
math3mb_.pfa -> Math3Mono-Bold.pfa 
math4mb_.pfa -> Math4Mono-Bold.pfa
math5mb_.pfa -> Math5Mono-Bold.pfa
sws721b_.pfa -> Swiss721BT-Bold.pfa
sws721bi.pfa -> Swiss721BT-BoldItalic.pfa
sws721i_.pfa -> Swiss721BT-Italic.pfa
sws721r_.pfa -> Swiss721BT-Roman.pfa

2) Add font association entries in the Fontmap file.  A template that
uses the naming convention in (1) along with the default installation
directory is given here

% GhostScript Fontmap add-on for Unix platform
%
% Created by P.J. Hinton, Wolfram Research Technical Support
%
% This file is freely distributable without warranty.
% 
% This file can be appended to the Ghostscript Fontmap file, which 
% resides in the top level Ghostscript (not Ghostview) directory.  It
% tells Ghostscript where to find the Type 1 fonts that are installed
% by Mathematica 3.0  This will allow typeset characters in your 
% graphics to appear correctly when rendered in Ghostview and when
% you convert Mathematica 3.0 generated PostScript files to a 
% non-PostScript printer format.
%
% This file is written with the assumption that Mathematica 3.0
% is installed to 
%
% /usr/local/mathematica/
% 
% If a different setup exists on your system, you will need to 
% update the contents below accordingly.  Note that MS-DOS=compliant
% 8+3 filenames are used here because the comments in the Fontmap
% file suggest that this is mandatory.
%
% Greek characters
%
/Math1                 (/usr/local/mathematica/SystemFiles/Fonts/Type1/math1___.pfa);
/Math1-Bold            (/usr/local/mathematica/SystemFiles/Fonts/Type1/math1b__.pfa);
/Math1Mono             (/usr/local/mathematica/SystemFiles/Fonts/Type1/math1m__.pfa);
/Math1Mono-Bold        (/usr/local/mathematica/SystemFiles/Fonts/Type1/math1mb_.pfa);
%
% Stretchable grouping symbols
%
/Math2                 (/usr/local/mathematica/SystemFiles/Fonts/Type1/math2___.pfa);
/Math2-Bold            (/usr/local/mathematica/SystemFiles/Fonts/Type1/math2b__.pfa);
/Math2Mono             (/usr/local/mathematica/SystemFiles/Fonts/Type1/math2m__.pfa);
/Math2Mono-Bold        (/usr/local/mathematica/SystemFiles/Fonts/Type1/math2mb_.pfa);
%
% Mathematical relational symbols
%
/Math3                 (/usr/local/mathematica/SystemFiles/Fonts/Type1/math3___.pfa);
/Math3-Bold            (/usr/local/mathematica/SystemFiles/Fonts/Type1/math3b__.pfa);
/Math3Mono             (/usr/local/mathematica/SystemFiles/Fonts/Type1/math3m__.pfa);
/Math3Mono-Bold        (/usr/local/mathematica/SystemFiles/Fonts/Type1/math3mb_.pfa);
%
% Arrow Symbols
%
/Math4                 (/usr/local/mathematica/SystemFiles/Fonts/Type1/math4___.pfa);
/Math4-Bold            (/usr/local/mathematica/SystemFiles/Fonts/Type1/math4b__.pfa);
/Math4Mono             (/usr/local/mathematica/SystemFiles/Fonts/Type1/math4m__.pfa);
/Math4Mono-Bold        (/usr/local/mathematica/SystemFiles/Fonts/Type1/math4mb_.pfa);
%
% Script letters
%
/Math5                 (/usr/local/mathematica/SystemFiles/Fonts/Type1/math5___.pfa);
/Math5-Bold            (/usr/local/mathematica/SystemFiles/Fonts/Type1/math5b__.pfa);
/Math5Mono             (/usr/local/mathematica/SystemFiles/Fonts/Type1/math5b__.pfa);
/Math5Mono-Bold        (/usr/local/mathematica/SystemFiles/Fonts/Type1/math5mb_.pfa);
%
% Bitstream Swiss 721 -- lookalike fonts for Helvetica
%
/Swiss721BT-Bold       (/usr/local/mathematica/SystemFiles/Fonts/Type1/sws721b_.pfa);
/Swiss721BT-BoldItalic (/usr/local/mathematica/SystemFiles/Fonts/Type1/sws721bi.pfa);
/Swiss721BT-Italic     (/usr/local/mathematica/SystemFiles/Fonts/Type1/sws721i_.pfa);
/Swiss721BT-Roman      (/usr/local/mathematica/SystemFiles/Fonts/Type1/sws721r_.pfa);

The implementation under Windows has only one step --  add font
association entries in the Fontmap file in the top level Ghostscript
directory.  A templaate that uses the default installation directory for
Mathematica under Windows is given in the third attachment (convert this
into a download link).

% GhostScript Fontmap add-on for Windows platform
%
% Created by P.J. Hinton, Wolfram Research Technical Support
%
% This file is freely distributable without warranty.
% 
% This file can be appended to the GhostScript Fontmap file, which 
% resides in the top level GhostScript (not GSView) directory.  It
% tells GhostScript where to find the Type 1 fonts that are installed
% by Mathematica 3.0  This will allow typeset characters in your 
% graphics to appear correctly when rendered in GSView32 and when
% you convert Mathematica 3.0 generated PostScript files to a 
% non-PostScript printer format.
%
% This file is written with the assumption that Mathematica 3.0
% is installed to 
%
% C:\Program Files\Wolfram Research\Mathematica\3.0\
% 
% If a different setup exists on your system, you will need to 
% update the contents below accordingly.  Note that MS-DOS=compliant
% 8+3 filenames are used here because the comments in the Fontmap
% file suggest that this is mandatory.
%
% Greek characters
%
/Math1                        (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math1.pfa)    ;
/Math1-Bold                   (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math1-~1.pfa) ;
/Math1Mono                    (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math1m~2.pfa)    ;
/Math1Mono-Bold               (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math1m~1.pfa) ;
%
% Stretchable grouping symbols
%
/Math2                        (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math2.pfa)    ; 
/Math2-Bold                   (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math2-~1.pfa) ;
/Math2Mono                    (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math2m~2.pfa) ;
/Math2Mono-Bold               (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math2m~1.pfa) ;
%
% Mathematical relational symbols
%
/Math3                        (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math3.pfa)    ;
/Math3-Bold                   (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math3-~1.pfa) ; 
/Math3Mono                    (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math3m~2.pfa) ;
/Math3Mono-Bold               (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math3m~1.pfa) ;
%
% Arrow Symbols
%
/Math4                        (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math4.pfa)    ;
/Math4-Bold                   (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math4-~1.pfa) ;
/Math4Mono                    (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math4m~2.pfa) ;
/Math4Mono-Bold               (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math4m~1.pfa) ;
%
% Script letters
% 
/Math5                        (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math5.pfa)    ;
/Math5-Bold                   (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math5-~1.pfa) ;
/Math5Mono                    (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math5m~2.pfa) ;
/Math5Mono-Bold               (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/math5m~1.pfa) ;
%
% Bitstream Swiss 721 -- lookalike fonts for Helvetica
%
/Swiss721BT-Bold              (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/swiss7~1.pfa) ;
/Swiss721BT-BoldItalic        (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/swiss7~2.pfa) ; 
/Swiss721BT-Italic            (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/swiss7~3.pfa) ;
/Swiss721BT-Roman             (c:/progra~1/wolfra~1/mathem~1/3.0/system~1/fonts/type1/swiss7~4.pfa) ;

For printing to PostScript printers, you may need to perform additional measures
to make the fonts available.  This is a platform-dependent issue, and you can
find some help at URL:

http://www.wolfram.com/support/FrontEnds/Printing/FontsInGraph.html

--
P.J. Hinton	
Mathematica Programming Group           paulh at wolfram.com
Wolfram Research, Inc.                  http://www.wolfram.com/~paulh/

--------------42165D5C40C840163513FFC

%!PS-Adobe-2.0 EPSF-1.2
%%BoundingBox: 0 0 288 177
%%HiResBoundingBox: 0 0 288 177.938
%%Creator: (Mathematica Macintosh 3.0)
%%Title: Clipboard
%%CreationDate: (Tuesday, July 29, 1997) (15:35:14)
%%DocumentNeededResources: (atend)
%%DocumentFonts: (atend)
%%DocumentNeededFonts: (atend)
%%EndComments
%%%%This draws a filled polygon and avoids bugs/features
%%%%   of some postscript interpreters
%%%%GHOSTSCRIPT: has a bug in reversepath - removing
%%%%the call to reversepath is a sufficient work around
/P {gsave fill grestore reversepath stroke} def

gsave
150 dict begin
/Mfixwid true def
/Mrot 0 def
/Mpstart {
    MathPictureStart
} bind def
/Mpend {
    MathPictureEnd
} bind def
/Mscale {
    0 1 0 1
    5 -1 roll
    MathScale
} bind def
/Plain	/Courier findfont def
/Bold	/Courier-Bold findfont def
/Italic /Courier-Oblique findfont def
/MathPictureStart {
	/Mimatrix
	 matrix currentmatrix
	def
	gsave
	newpath
	Mleft
	Mbottom
	translate
	/Mtmatrix
	matrix currentmatrix
	def
	Plain
	Mfontsize scalefont
	setfont
	0 setgray
	0 setlinewidth
} bind def
/MathPictureEnd {
	grestore
} bind def
/MathSubStart {
 	     Momatrix
        Mgmatrix Mtmatrix
        Mleft Mbottom
        Mwidth Mheight
        9 -2 roll
        moveto
        Mtmatrix setmatrix
        currentpoint
        Mgmatrix setmatrix
        11 -2 roll
        moveto
        Mtmatrix setmatrix
        currentpoint
        2 copy translate
        /Mtmatrix matrix currentmatrix def
        /Mleft 0 def
        /Mbottom 0 def
        3 -1 roll
        exch sub
        /Mheight exch def
        sub
        /Mwidth exch def
} bind def
/MathSubEnd {
        /Mheight exch def
        /Mwidth exch def
        /Mbottom exch def
        /Mleft exch def
        /Mtmatrix exch def
        dup setmatrix
        /Mgmatrix exch def
	      /Momatrix exch def
} bind def
/Mdot {
	moveto
	0 0 rlineto
	stroke
} bind def
/Mtetra {
	moveto
	lineto
	lineto
	lineto
	fill
} bind def
/Metetra {
	moveto
	lineto
	lineto
	lineto
	closepath
	gsave
	fill
	grestore
	0 setgray
	stroke
} bind def
/Mistroke {
	flattenpath
	0 0 0
	{
	4 2 roll
	pop pop
	}
	{
	4 -1 roll
	2 index
	sub dup mul
	4 -1 roll
	2 index
	sub dup mul
	add sqrt
	4 -1 roll
	add
	3 1 roll
	}
	{
	stop
	}
	{
	stop
	}
	pathforall
	pop pop
	currentpoint
	stroke
	moveto
	currentdash
	3 -1 roll
	add
	setdash
} bind def
/Mfstroke {
	stroke
	currentdash
	pop 0
	setdash
} bind def
/Mrotsboxa {
	gsave
	dup
	/Mrot
	exch def
	Mrotcheck
	Mtmatrix
	dup
	setmatrix
	7 1 roll
	4 index
	4 index
	translate
	rotate
	3 index
	-1 mul
	3 index
	-1 mul
	translate
	/Mtmatrix
	matrix
	currentmatrix
	def
	grestore
	Msboxa
	3  -1 roll
	/Mtmatrix
	exch def
	/Mrot
	0 def
} bind def
/Msboxa {
	newpath
	5 -1 roll
	Mvboxa
	pop
	Mboxout
	6 -1 roll
	5 -1 roll
	4 -1 roll
	Msboxa1
	5 -3 roll
	Msboxa1
	Mboxrot
	[
	7 -2 roll
	2 copy
	[
	3 1 roll
	10 -1 roll
	9 -1 roll
	]
	6 1 roll
	5 -2 roll
	]
} bind def
/Msboxa1 {
	sub
	2 div
	dup
	2 index
	1 add
	mul
	3 -1 roll
	-1 add
	3 -1 roll
	mul
} bind def
/Mvboxa	{
	Mfixwid
	{
	Mvboxa1
	}
	{
	dup
	Mwidthcal
	0 exch
	{
	add
	}
	forall
	exch
	Mvboxa1
	4 index
	7 -1 roll
	add
	4 -1 roll
	pop
	3 1 roll
	}
	ifelse
} bind def
/Mvboxa1 {
	gsave
	newpath
	[ true
	3 -1 roll
	{
	Mbbox
	5 -1 roll
	{
	0
	5 1 roll
	}
	{
	7 -1 roll
	exch sub
	(m) stringwidth pop
	.3 mul
	sub
	7 1 roll
	6 -1 roll
	4 -1 roll
	Mmin
	3 -1 roll
	5 index
	add
	5 -1 roll
	4 -1 roll
	Mmax
	4 -1 roll
	}
	ifelse
	false
	}
	forall
	{ stop } if
	counttomark
	1 add
	4 roll
	]
	grestore
} bind def
/Mbbox {
	0 0 moveto
	false charpath
	flattenpath
	pathbbox
	newpath
} bind def
/Mmin {
	2 copy
	gt
	{ exch } if
	pop
} bind def
/Mmax {
	2 copy
	lt
	{ exch } if
	pop
} bind def
/Mrotshowa {
	dup
	/Mrot
	exch def
	Mrotcheck
	Mtmatrix
	dup
	setmatrix
	7 1 roll
	4 index
	4 index
	translate
	rotate
	3 index
	-1 mul
	3 index
	-1 mul
	translate
	/Mtmatrix
	matrix
	currentmatrix
	def
	Mgmatrix setmatrix
	Mshowa
	/Mtmatrix
	exch def
	/Mrot 0 def
} bind def
/Mshowa {
	4 -2 roll
	moveto
	2 index
	Mtmatrix setmatrix
	Mvboxa
	7 1 roll
	Mboxout
	6 -1 roll
	5 -1 roll
	4 -1 roll
	Mshowa1
	4 1 roll
	Mshowa1
	rmoveto
	currentpoint
	Mfixwid
	{
	Mshowax
	}
	{
	Mshoway
	}
	ifelse
	pop pop pop pop
	Mgmatrix setmatrix
} bind def
/Mshowax {
	0 1
        4 index length
        -1 add
        {
        2 index
        4 index
        2 index
        get
        3 index
        add
        moveto
        4 index
        exch get
        show
        } for
} bind def
/Mshoway {
        3 index
        Mwidthcal
        5 1 roll
	0 1
	4 index length
	-1 add
	{
	2 index
	4 index
	2 index
	get
	3 index
	add
	moveto
	4 index
	exch get
	[
	6 index
	aload
	length
	2 add
	-1 roll
	{
	pop
	Strform
	stringwidth
	pop
	neg
	exch
	add
	0 rmoveto
	}
	exch
	kshow
	cleartomark
	} for
	pop
} bind def
/Mwidthcal {
	[
	exch
	{
	Mwidthcal1
	}
	forall
	]
	[
	exch
	dup
	Maxlen
	-1 add
	0 1
	3 -1 roll
	{
	[
	exch
	2 index
	{
	1 index
	Mget
	exch
	}
	forall
	pop
	Maxget
	exch
	}
	for
	pop
	]
	Mreva
} bind def
/Mreva	{
	[
	exch
	aload
	length
	-1 1
	{1 roll}
	for
	]
} bind def
/Mget	{
	1 index
	length
	-1 add
	1 index
	ge
	{
	get
	}
	{
	pop pop
	0
	}
	ifelse
} bind def
/Maxlen	{
	[
	exch
	{
	length
	}
	forall
	Maxget
} bind def
/Maxget	{
	counttomark
	-1 add
	1 1
	3 -1 roll
	{
	pop
	Mmax
	}
	for
	exch
	pop
} bind def
/Mwidthcal1 {
	[
	exch
	{
	Strform
	stringwidth
	pop
	}
	forall
	]
} bind def
/Strform {
	/tem (x) def
	tem 0
	3 -1 roll
	put
	tem
} bind def
/Mshowa1 {
	2 copy
	add
	4 1 roll
	sub
	mul
	sub
	-2 div
} bind def
/MathScale {
	Mwidth
	Mheight
	Mlp
	translate
	scale
	/yscale exch def
	/ybias exch def
	/xscale exch def
	/xbias exch def
	/Momatrix
	xscale yscale matrix scale
	xbias ybias matrix translate
	matrix concatmatrix def
	/Mgmatrix
	matrix currentmatrix
	def
} bind def
/Mlp {
	3 copy
	Mlpfirst
	{
	Mnodistort
	{
	Mmin
	dup
	} if
	4 index
	2 index
	2 index
	Mlprun
	11 index
	11 -1 roll
	10 -4 roll
	Mlp1
	8 index
	9 -5 roll
	Mlp1
	4 -1 roll
	and
	{ exit } if
	3 -1 roll
	pop pop
	} loop
	exch
	3 1 roll
	7 -3 roll
	pop pop pop
} bind def
/Mlpfirst {
	3 -1 roll
	dup length
	2 copy
	-2 add
	get
	aload
	pop pop pop
	4 -2 roll
	-1 add
	get
	aload
	pop pop pop
	6 -1 roll
	3 -1 roll
	5 -1 roll
	sub
	dup /MsaveAx exch def
	div
	4 1 roll
	exch sub
	dup /MsaveAy exch def
	div
} bind def
/Mlprun {
	2 copy
	4 index
	0 get
	dup
	4 1 roll
	Mlprun1
	3 copy
	8 -2 roll
	9 -1 roll
	{
	3 copy
	Mlprun1
	3 copy
	11 -3 roll
	/gt Mlpminmax
	8 3 roll
	11 -3 roll
	/lt Mlpminmax
	8 3 roll
	} forall
	pop pop pop pop
	3 1 roll
	pop pop
	aload pop
	5 -1 roll
	aload pop
	exch
	6 -1 roll
	Mlprun2
	8 2 roll
	4 -1 roll
	Mlprun2
	6 2 roll
	3 -1 roll
	Mlprun2
	4 2 roll
	exch
	Mlprun2
	6 2 roll
} bind def
/Mlprun1 {
	aload pop
	exch
	6 -1 roll
	5 -1 roll
	mul add
	4 -2 roll
	mul
	3 -1 roll
	add
} bind def
/Mlprun2 {
	2 copy
	add 2 div
	3 1 roll
	exch sub
} bind def
/Mlpminmax {
	cvx
	2 index
	6 index
	2 index
	exec
	{
	7 -3 roll
	4 -1 roll
	} if
	1 index
	5 index
	3 -1 roll
	exec
	{
	4 1 roll
	pop
	5 -1 roll
	aload
	pop pop
	4 -1 roll
	aload pop
	[
	8 -2 roll
	pop
	5 -2 roll
	pop
	6 -2 roll
	pop
	5 -1 roll
	]
	4 1 roll
	pop
	}
	{
	pop pop pop
	} ifelse
} bind def
/Mlp1 {
	5 index
	3 index	sub
	5 index
	2 index mul
	1 index
	le
	1 index
	0 le
	or
	dup
	not
	{
	1 index
	3 index	div
	.99999 mul
	8 -1 roll
	pop
	7 1 roll
	}
	if
	8 -1 roll
	2 div
	7 -2 roll
	pop sub
	5 index
	6 -3 roll
	pop pop
	mul sub
	exch
} bind def
/intop 0 def
/inrht 0 def
/inflag 0 def
/outflag 0 def
/xadrht 0 def
/xadlft 0 def
/yadtop 0 def
/yadbot 0 def
/Minner {
	outflag
	1
	eq
	{
	/outflag 0 def
	/intop 0 def
	/inrht 0 def
	} if
	5 index
	gsave
	Mtmatrix setmatrix
	Mvboxa pop
	grestore
	3 -1 roll
	pop
	dup
	intop
	gt
	{
	/intop
	exch def
	}
	{ pop }
	ifelse
	dup
	inrht
	gt
	{
	/inrht
	exch def
	}
	{ pop }
	ifelse
	pop
	/inflag
	1 def
} bind def
/Mouter {
	/xadrht 0 def
	/xadlft 0 def
	/yadtop 0 def
	/yadbot 0 def
	inflag
	1 eq
	{
	dup
	0 lt
	{
	dup
	intop
	mul
	neg
	/yadtop
	exch def
	} if
	dup
	0 gt
	{
	dup
	intop
	mul
	/yadbot
	exch def
	}
	if
	pop
	dup
	0 lt
	{
	dup
	inrht
	mul
	neg
	/xadrht
	exch def
	} if
	dup
	0 gt
	{
	dup
	inrht
	mul
	/xadlft
	exch def
	} if
	pop
	/outflag 1 def
	}
	{ pop pop}
	ifelse
	/inflag 0 def
	/inrht 0 def
	/intop 0 def
} bind def
/Mboxout {
	outflag
	1
	eq
	{
	4 -1
	roll
	xadlft
	leadjust
	add
	sub
	4 1 roll
	3 -1
	roll
	yadbot
	leadjust
	add
	sub
	3 1
	roll
	exch
	xadrht
	leadjust
	add
	add
	exch
	yadtop
	leadjust
	add
	add
	/outflag 0 def
	/xadlft 0 def
	/yadbot 0 def
	/xadrht 0 def
	/yadtop 0 def
	} if
} bind def
/leadjust {
	(m) stringwidth pop
	.5 mul
} bind def
/Mrotcheck {
	dup
	90
	eq
	{
	yadbot
	/yadbot
	xadrht
	def
	/xadrht
	yadtop
	def
	/yadtop
	xadlft
	def
	/xadlft
	exch
	def
	}
	if
	dup
	cos
	1 index
	sin
	Checkaux
	dup
	cos
	1 index
	sin neg
	exch
	Checkaux
	3 1 roll
	pop pop
} bind def
/Checkaux {
	4 index
	exch
	4 index
	mul
	3 1 roll
	mul add
	4 1 roll
} bind def
/Mboxrot {
	Mrot
	90 eq
	{
	brotaux
	4 2
	roll
	}
	if
	Mrot
	180 eq
	{
	4 2
        roll
	brotaux
	4 2
	roll
	brotaux
	}
	if
	Mrot
	270 eq
	{
	4 2
	roll
	brotaux
	}
	if
} bind def
/brotaux {
	neg
	exch
	neg
} bind def
/Mabsproc {
        0
        matrix defaultmatrix
        dtransform idtransform
        dup mul exch
        dup mul
        add sqrt
} bind def
/Mabswid {
        Mabsproc
        setlinewidth
} bind def
/Mabsdash {
        exch
        [
        exch
        {
        Mabsproc
        }
        forall
        ]
        exch
        setdash
} bind def
/MBeginOrig { Momatrix concat} bind def
/MEndOrig { Mgmatrix setmatrix} bind def
/sampledsound where
{ pop}
{ /sampledsound {
exch
pop
exch
5 1 roll
mul
4 idiv
mul
2 idiv
exch pop
exch
/Mtempproc exch def
{ Mtempproc pop }
repeat
} bind def
} ifelse
% Here are the short operators
/g { setgray} bind def
/k { setcmykcolor} bind def
/m { moveto} bind def
/p { gsave} bind def
/r { setrgbcolor} bind def
/w { setlinewidth} bind def
/C { curveto} bind def
/F { fill} bind def
/L { lineto} bind def
/P { grestore} bind def
/s { stroke} bind def

/MFill {
	0 0 		moveto
	Mwidth 0 	lineto
	Mwidth Mheight 	lineto
	0 Mheight 	lineto
	fill
} bind def

/MPlotRegion {
	3 index
	Mwidth mul
	2 index
	Mheight mul
	translate
	exch sub
	Mheight mul
	/Mheight
	exch def
	exch sub
	Mwidth mul
	/Mwidth
	exch def
} bind def

/Mcharproc
{
  	currentfile
  	(x)
  	readhexstring
  	pop
  	0 get
  	exch
 	div
} bind def

/Mshadeproc
{
	dup
	3 1
	roll
	{
	dup
	Mcharproc
	3 1
	roll
	} repeat
	1 eq
	{
	setgray
	}
	{
	3 eq
	{
	setrgbcolor
	}
	{
	setcmykcolor
	} ifelse
	} ifelse
} bind def

/Mrectproc
{
	3 index
	2 index
	moveto
	2 index
	3 -1
	roll
	lineto
	dup
	3 1
	roll
	lineto
	lineto
	fill
} bind def

/Mcolorimage
{
	7 1
	roll
	pop
	pop
	matrix
	invertmatrix
	concat
	2 exch exp
	1 sub
	3 1 roll
	1 1
	2 index
	{
	1 1
	4 index
	{
	dup
	1 sub
	exch
	2 index
	dup
	1 sub
	exch
	7 index
	9 index
	Mshadeproc
	Mrectproc
	} for
	pop
	} for
	pop pop pop pop
} bind def

/Mimage
{
	pop
	matrix
	invertmatrix
	concat
	2 exch exp
	1 sub
	3 1 roll
	1 1
	2 index
	{
	1 1
	4 index
	{
	dup
	1 sub 
	exch
	2 index
	dup
	1 sub
	exch
	7 index
	Mcharproc
	setgray
	Mrectproc
	} for
	pop
	} for
	pop pop pop
} bind def
/Mnodistort true def
/colorimage where
{ pop /Mcolorimage {colorimage} bind def /Mimage {image} bind def}
{
/colorimage {Mcolorimage} bind def
} ifelse
1.000000 1.000000 scale
0.000000 177.937500 translate
1.000000 -1.000000 scale
0.000000 0.000000 translate
/Mleft		0.000000 def
/Mbottom	0.000000 def
/Mwidth		288.000000 def
/Mheight	177.937500 def
0 setgray
0 setlinewidth
/Courier findfont 12 scalefont setfont
/Mfontsize 12 def
/Plain /Courier findfont def

0 Mbottom Mheight add 0.01 mul Mheight add translate
1 -1 scale
%!
%%Creator: Mathematica
%%AspectRatio: .61803 
MathPictureStart
/Mabs {
Mgmatrix idtransform
Mtmatrix dtransform
} bind def
/Mabsadd { Mabs
3 -1 roll add
3 1 roll add
exch } bind def
%% Graphics
/Courier findfont 10  scalefont  setfont
% Scaling calculations
0.0238075 2007.42 0.309017 0.294302 [
[.22455 .29652 -18 -9 ]
[.22455 .29652 18 0 ]
[.42529 .29652 -18 -9 ]
[.42529 .29652 18 0 ]
[.62603 .29652 -18 -9 ]
[.62603 .29652 18 0 ]
[.82678 .29652 -18 -9 ]
[.82678 .29652 18 0 ]
[1.025 .30902 0 -7 ]
[1.025 .30902 10 7 ]
[.01131 .01472 -12 -4.5 ]
[.01131 .01472 0 4.5 ]
[.01131 .16187 -24 -4.5 ]
[.01131 .16187 0 4.5 ]
[.01131 .45617 -18 -4.5 ]
[.01131 .45617 0 4.5 ]
[.01131 .60332 -6 -4.5 ]
[.01131 .60332 0 4.5 ]
[.02381 .64303 -14 0 ]
[.02381 .64303 14 14 ]
[ 0 0 0 0 ]
[ 1 .61803 0 0 ]
] MathScale
% Start of Graphics
1 setlinecap
1 setlinejoin
newpath
0 g
.25 Mabswid
[ ] 0 setdash
.22455 .30902 m
.22455 .31527 L
s
[(0.0001)] .22455 .29652 0 1 Mshowa
.42529 .30902 m
.42529 .31527 L
s
[(0.0002)] .42529 .29652 0 1 Mshowa
.62603 .30902 m
.62603 .31527 L
s
[(0.0003)] .62603 .29652 0 1 Mshowa
.82678 .30902 m
.82678 .31527 L
s
[(0.0004)] .82678 .29652 0 1 Mshowa
.125 Mabswid
.06396 .30902 m
.06396 .31277 L
s
.1041 .30902 m
.1041 .31277 L
s
.14425 .30902 m
.14425 .31277 L
s
.1844 .30902 m
.1844 .31277 L
s
.2647 .30902 m
.2647 .31277 L
s
.30485 .30902 m
.30485 .31277 L
s
.345 .30902 m
.345 .31277 L
s
.38514 .30902 m
.38514 .31277 L
s
.46544 .30902 m
.46544 .31277 L
s
.50559 .30902 m
.50559 .31277 L
s
.54574 .30902 m
.54574 .31277 L
s
.58589 .30902 m
.58589 .31277 L
s
.66618 .30902 m
.66618 .31277 L
s
.70633 .30902 m
.70633 .31277 L
s
.74648 .30902 m
.74648 .31277 L
s
.78663 .30902 m
.78663 .31277 L
s
.86693 .30902 m
.86693 .31277 L
s
.90707 .30902 m
.90707 .31277 L
s
.94722 .30902 m
.94722 .31277 L
s
.98737 .30902 m
.98737 .31277 L
s
.25 Mabswid
0 .30902 m
1 .30902 L
s
gsave
1.025 .30902 -61 -11 Mabsadd m
1 1 Mabs scale
currentpoint translate
0 22 translate 1 -1 scale
63.000000 15.000000 moveto
%%IncludeResource: font Courier
%%IncludeFont: Courier
/Courier findfont 10.000000 scalefont
[1 0 0 -1 0 0 ] makefont setfont
0.000000 0.000000 0.000000 setrgbcolor
0.000000 0.000000 rmoveto
63.000000 15.000000 moveto
%%IncludeResource: font Courier
%%IncludeFont: Courier
/Courier findfont 10.000000 scalefont
[1 0 0 -1 0 0 ] makefont setfont
0.000000 0.000000 0.000000 setrgbcolor
(t) show
69.000000 15.000000 moveto
%%IncludeResource: font Courier
%%IncludeFont: Courier
/Courier findfont 10.000000 scalefont
[1 0 0 -1 0 0 ] makefont setfont
0.000000 0.000000 0.000000 setrgbcolor
0.000000 0.000000 rmoveto
1.000000 setlinewidth
%%DocumentNeededResources: font Courier
%%DocumentSuppliedResources:
%%DocumentNeededFonts: Courier
%%DocumentSuppliedFonts:
%%DocumentFonts: font Courier
grestore
.02381 .01472 m
.03006 .01472 L
s
[(-1)] .01131 .01472 1 0 Mshowa
.02381 .16187 m
.03006 .16187 L
s
[(-0.5)] .01131 .16187 1 0 Mshowa
.02381 .45617 m
.03006 .45617 L
s
[(0.5)] .01131 .45617 1 0 Mshowa
.02381 .60332 m
.03006 .60332 L
s
[(1)] .01131 .60332 1 0 Mshowa
.125 Mabswid
.02381 .04415 m
.02756 .04415 L
s
.02381 .07358 m
.02756 .07358 L
s
.02381 .10301 m
.02756 .10301 L
s
.02381 .13244 m
.02756 .13244 L
s
.02381 .1913 m
.02756 .1913 L
s
.02381 .22073 m
.02756 .22073 L
s
.02381 .25016 m
.02756 .25016 L
s
.02381 .27959 m
.02756 .27959 L
s
.02381 .33845 m
.02756 .33845 L
s
.02381 .36788 m
.02756 .36788 L
s
.02381 .39731 m
.02756 .39731 L
s
.02381 .42674 m
.02756 .42674 L
s
.02381 .4856 m
.02756 .4856 L
s
.02381 .51503 m
.02756 .51503 L
s
.02381 .54446 m
.02756 .54446 L
s
.02381 .57389 m
.02756 .57389 L
s
.25 Mabswid
.02381 0 m
.02381 .61803 L
s
gsave
.02381 .64303 -75 -4 Mabsadd m
1 1 Mabs scale
currentpoint translate
0 22 translate 1 -1 scale
63.000000 15.000000 moveto
%%IncludeResource: font Courier
%%IncludeFont: Courier
/Courier findfont 10.000000 scalefont
[1 0 0 -1 0 0 ] makefont setfont
0.000000 0.000000 0.000000 setrgbcolor
0.000000 0.000000 rmoveto
63.000000 15.000000 moveto
%%IncludeResource: font Courier
%%IncludeFont: Courier
/Courier findfont 10.000000 scalefont
[1 0 0 -1 0 0 ] makefont setfont
0.000000 0.000000 0.000000 setrgbcolor
(B) show
%%IncludeResource: font Math2Mono
%%IncludeFont: Math2Mono
/Math2Mono findfont 10.000000 scalefont
[1 0 0 -1 0 0 ] makefont setfont
0.000000 0.000000 0.000000 setrgbcolor
69.000000 15.000000 moveto
(H) show
75.000000 15.000000 moveto
%%IncludeResource: font Courier
%%IncludeFont: Courier
/Courier findfont 10.000000 scalefont
[1 0 0 -1 0 0 ] makefont setfont
0.000000 0.000000 0.000000 setrgbcolor
(t) show
%%IncludeResource: font Math2Mono
%%IncludeFont: Math2Mono
/Math2Mono findfont 10.000000 scalefont
[1 0 0 -1 0 0 ] makefont setfont
0.000000 0.000000 0.000000 setrgbcolor
81.000000 15.000000 moveto
(L) show
87.000000 15.000000 moveto
%%IncludeResource: font Courier
%%IncludeFont: Courier
/Courier findfont 10.000000 scalefont
[1 0 0 -1 0 0 ] makefont setfont
0.000000 0.000000 0.000000 setrgbcolor
0.000000 0.000000 rmoveto
1.000000 setlinewidth
%%DocumentNeededResources: font Math2Mono
%%+ font Courier
%%DocumentSuppliedResources:
%%DocumentNeededFonts: Math2Mono
%%+ Courier
%%DocumentSuppliedFonts:
%%DocumentFonts: font Math2Mono
%%+ font Courier
grestore
.001 w
.02381 .30902 m
.97619 .30902 L
s
0 0 m
1 0 L
1 .61803 L
0 .61803 L
closepath
clip
newpath
% End of Graphics
MathPictureEnd
%%PSTrailer
end
grestore

%%EPS Trailer

--------------42165D5C40C840163513FFC--


  • Prev by Date: Normal probability grid
  • Next by Date: Several variables limit?
  • Previous by thread: Re: postscript problems
  • Next by thread: Compiling a Module