2013-05-30 12 views
5

In base al manuale MATLAB, quando si salva una cifra usando print o scegliendo file|save, se si sceglie il renderizzatore painters e si salvano nei formati vettoriali PDF o EPS, all fonts get substituted. C'è un modo per aggirare questa limitazione?È possibile aggirare il limite di MATLAB sull'incorporazione dei font nei file di formato vettoriale?

Ogni volta che in uscita una figura, se io uso print o export_fig, i font ottenere sostituito, e in modo che non corrispondono più i caratteri nel documento che ho intenzione di mettere la figura in. Preferirei tenerli in un formato vettoriale, perché uso LaTeX e quindi voglio essere in grado di usare le stesse figure nei miei documenti come nelle mie presentazioni beamer e farle scalare bene senza gonfiare le dimensioni del file.

+0

Il file EPS è uno script di testo e puoi provare a cambiare il nome del font con la funzione di ricerca e sostituzione. Dovevo farlo quando avevo problemi con la codepage. –

risposta

4

Se sto leggendo quel link correttamente, non tutti i font vengono sostituiti. Da 'Choosing a Printer Driver':

Nella tabella seguente sono elencati i font supportati dai driver MATLAB PostScript e Ghostscript quando generata con il renderer Painters (uscita completamente vectorized). Questo stesso set di font è supportato su Windows e UNIX:

AvantGarde 
Helvetica-Narrow 
Times-Roman 
Bookman 
NewCenturySchlbk 
ZapfChancery 
Courier 
Palatino 
ZapfDingbats 
Helvetica 
Symbol 

Quindi, se si utilizza uno dei tipi di carattere di cui sopra, la figura di uscita vettore formato dovrebbe mantenere il carattere corretto. Si veda ad esempio:

list_fonts = listfonts 
figure('renderer','painters'), 
plot(peaks), 
xlabel('this font is Helvetica','fontname','Helvetica','fontsize',24) 
set(gcf,'paperpositionmode','auto') 
print(gcf,'-depsc2','test1.eps') 

Che produce:

example output

Quindi, scegliere uno dei tipi di carattere dalla lista di cui sopra, e il font sarà emesso regolarmente. Altrimenti, cambia il carattere nella presentazione in modo che corrisponda a uno dei caratteri sopra indicati.

+1

Ci sono due problemi con questo. Innanzitutto, le cifre sono per un giornale scientifico e devo seguire le loro linee guida sui font. Secondo, non ho quei caratteri. Se provo ad aprire il PDF risultante in Illustrator, ad esempio, ricevo un errore che dice che Helvetica non è disponibile. Ovviamente devono essere sul mio computer da qualche parte, ma non so come renderli visibili al resto del mio computer. Oltre al fatto che ci sono font molto migliori là fuori, specialmente se voglio includere delle annotazioni matematiche nelle mie figure. – craigim

+0

@craigim una soluzione jury rigged ... perché non li esportate con font courier (o un font a cui è garantito il computer), quindi aprite la figura in illustrator/inkscape e cambiate il font? Oppure esportare la figura senza etichette e aggiungerle successivamente in Illustrator/Inkscape? –

+0

Questo è quello che ho fatto. Speravo di trovare un modo per saltare questo passaggio.Idealmente, sarei in grado di avere una sceneggiatura che prendesse i miei dati, facesse qualsiasi manipolazione e analisi da fare e sputasse una figura pronta per il journal, così quando ho bisogno di fare cambiamenti, devo solo modificare lo script e rieseguirlo senza dover ricominciare da zero sui font, poiché i font sostituiti hanno tutti dimensioni e spaziatura diverse rispetto agli originali, quindi non posso solo cercare e sostituire, ma devo riallineare le etichette con segni di spunta e asce. – craigim

0

Ho anche riscontrato questo problema per molte volte e ho un modo semplice ma efficace che non fallisce mai (su Windows, è necessario GSview).

1) salvare fig PDF

2) salvare PDF come ps

3) ps aperto con GSview, quindi fare clic su "File-> PS in EPS", specificare un nome di file e fatto.

Spero che questo aiuti.

Problemi correlati