Hallo liebe DMUG-Mitglieder,
ich habe ein Problem mit Umlauten in eps-Files mit
meiner Mathematica 3.0 Version.
Wenn ich Grafiken, die in den Framelabels Umlaute enthalten,
ueber die Notebook-Funktion Edit->Save Selection As->EPS
exportiere, werden die Umlaute weder von ghostscript noch
vom Imagetool (unter Solaris 2.7) dargestellt. Der Platz bleibt
einfach weiss.
Eigentlich denke ich, dass das eine FAQ ist, ich habe aber nichts
entsprechendes gefunden. Der haeufige Hinweis auf eine fehlerhafte
ghostscript-Konfiguration hat nicht weitergeholfen.
Mein ghostscript ist so konfiguriert, dass die Math-Fonts
automatisch gefunden werden, d.h. Probleme mit mathematischen
Sonderzeichen habe ich nicht.
Ich bin dem Problem soweit auf die Spur gekommen, dass Mathematica
Umlaute in Oktalschreibweise (also ä z.B. als \344) in die
eps-Files eintraegt. Dies wird aber von ghostscript nicht korrekt
interpretiert. Wenn ich den angehaengten Postscript-Code im eps-File
hinter %%EndComments einfuege, funktioniert alles (zumindest fuer
times und courier),
Das ist zwar eine Loesung, aber ich verstehe nicht warum sie
funktioniert (dazu reichen meine Postscript Kenntnisse nicht).
Ausserdem scheint mir das doch sehr unelegant zu sein. Falls jemand
eine Idee hat, wie man das Problem besser loest, waere ich um
Hinweise dankbar.
Tschau
Jochen Skupin
------------------- begin codeschnipsel -----------------------
------------ (hinter %%EndComments einzufuegen) ---------------
/newcodes % foreign character encodings
[
160/space 161/exclamdown 162/cent 163/sterling 164/currency
165/yen 166/brokenbar 167/section 168/dieresis 169/copyright
170/ordfeminine 171/guillemotleft 172/logicalnot 173/hyphen 174/registered
175/macron 176/degree 177/plusminus 178/twosuperior 179/threesuperior
180/acute 181/mu 182/paragraph 183/periodcentered 184/cedilla
185/onesuperior 186/ordmasculine 187/guillemotright 188/onequarter
189/onehalf 190/threequarters 191/questiondown 192/Agrave 193/Aacute
194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla
200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute
206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute
212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash
217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn
223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde
228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute
234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex
239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex
245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute
251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis
] def
/reencdict 12 dict def
% change fonts using ISO Latin1 characters
/ChgFnt % size psname natname => font
{
dup FontDirectory exch known % is re-encoded name known?
{ exch pop } % yes, get rid of long name
{ dup 3 1 roll ReEncode } ifelse % no, re-encode it
findfont exch scalefont setfont
} def
/ReEncode %
{
reencdict begin
/newname exch def
/basename exch def
/basedict basename findfont def
/newfont basedict maxlength dict def
basedict
{ exch dup /FID ne
{ dup /Encoding eq
{ exch dup length array copy newfont 3 1 roll put }
{ exch newfont 3 1 roll put } ifelse
}
{ pop pop } ifelse
} forall
newfont /FontName newname put
newcodes aload pop newcodes length 2 idiv
{ newfont /Encoding get 3 1 roll put } repeat
newname newfont definefont pop
end
} def
1000 /Courier /Courier ChgFnt
1000 /Courier-Oblique /Courier-Oblique ChgFnt
1000 /Courier-Bold /Courier-Bold ChgFnt
1000 /Courier-BoldOblique /Courier-BoldOblique ChgFnt
1000 /Times-Roman /Times-Roman ChgFnt
1000 /Times-Italic /Times-Italic ChgFnt
1000 /Times-Bold /Times-Bold ChgFnt
1000 /Times-BoldItalic /Times-BoldItalic ChgFnt
------------------- end codeschnipsel -----------------------