2013-05-30 10 views
5

根據MATLAB手冊,當您使用print或選擇file|save保存圖形時,如果選擇painters渲染器並保存爲PDF或EPS矢量格式all fonts get substituted。有沒有辦法解決這個限制?是否有可能解決MATLAB對矢量格式文件中字體嵌入的限制?

無論何時我輸出一個數字,無論是使用print還是export_fig,字體都會被替換,因此它們不再與我計劃放置數字的文檔中的字體匹配。我寧願將它們保留爲矢量格式,因爲我使用LaTeX,所以我希望能夠在我的文檔中使用與我的beamer演示文稿中相同的數字,並使它們可以很好地縮放而不會膨脹文件大小。

+0

EPS文件是一個文本腳本,您可以嘗試使用搜索和替換功能自己更改字體名稱。當遇到代碼頁問題時,我必須這樣做。 –

回答

4

如果我正確地閱讀該鏈接,而不是全部字體被替換。從'Choosing a Printer Driver'

下表列出了使用Painters渲染器(完全向量化輸出)生成時,MATLAB PostScript和Ghostscript驅動程序支持的字體。這組相同的字體支持Windows和UNIX:

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

所以,如果你使用上面的字體之一,輸出矢量格式的數字應該保持正確的字體。例如見:

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

主要生產:

example output

所以,選擇從上面的列表中的一種字體,並且字體會正確輸出。否則,請更改演示文稿中的字體以匹配上述字體之一。

+1

這有兩個問題。首先,這些數字是用於科學期刊的,我必須遵循他們的字體指南。其次,我沒有這些字體。如果我嘗試在Illustrator中打開生成的PDF,例如,我收到一個錯誤,指出Helvetica不可用。很明顯,他們必須在我的電腦上某處,但我不知道如何讓它們在我的電腦中可見。除此之外,還有更好的字體,特別是如果我想在數字中包含數學符號的話。 – craigim

+0

@craigim陪審團操縱的解決方案......你爲什麼不用courier字體(或者你的電腦保證可以訪問的字體)導出它們,然後在illustrator/inkscape中打開圖形並更改字體?或者,導出沒有標籤的圖形,然後在illustrator/inkscape中添加它們? –

+0

這就是我一直在做的事情。我希望找出一種跳過這一步的方法。理想情況下,我將能夠擁有一個腳本,它能夠獲取我的數據,進行任何操作和分析,並且可以隨時準備日記,以便在需要進行更改時,我只需要調整腳本並重新運行它,而不必從頭開始,因爲替換字體的大小和間距均與原始大小不同,所以我不能只搜索和替換,而必須重新將標籤與刻度線和座標軸。 – craigim

0

我也遇到過這個問題很多次了,我有一個簡單而有效的方式,永遠不會讓我失望(在Windows上,需要GSview)。

1)保存如圖PDF

2)保存PDF作爲PS

3)打開PS與GSView程序,然後點擊 「文件 - > PS到EPS」,指定文件名和完成的。

希望這會有所幫助。

相關問題