DMUG-Archiv 2000

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Umlaute in eps-Files

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 -----------------------


Antworten:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html