適合我電腦的最后方法
matlab fig--print--adobe pdf convert,將其打印存為pdf格式。再用adobe acrobat打開pdf存為eps格式,ai打開eps格式再旋轉調整。旋轉ctrl+a全選,左邊圖標旋轉,按住alt向左或右拉,在命令框設置旋轉角度。
(1)投IEEE文章的同學可以看看
Font Helvetica is not embedded,一個字體問題花費了我兩三個小時,解決方法記錄一下,方便后續自己查看,也方便出現同樣問題的同學少走彎路。
IEEE要求所有投稿的PDF文檔要通過
IEEE PDF eXpress service檢查,而這個系統要求嵌入所有的字體才可以提交。
我的文檔有一個Helvetica字體沒有嵌入,一開始以為是字體沒有安裝的原因,於是下載了全套的Helvetica字體裝上,結果發現還是不行,在網上找了蠻久,最后發現這些Helvetica字體全都來自matlab保存的eps圖片中,於是用Notepad++打開eps文件,並把其中的Helvetica全部替換成為Arial,再次生成PDF文件,發現所有的字體都能夠embedded了,通過了檢查。
http://blog.csdn.net/u013829933/article/details/51763811
(2)matlab論壇版主
math
在你導出的圖片里面,不要使用legend,或者坐標軸坐標。
在latex文件里:
\begin{figure}[bt]
\centering
\begin{overpic}[width=3.35in]{image path}
\put(9,30){\rotatebox{-45}{\footnotesize{anything}}}
\put(50,24){\rotatebox{23}{\footnotesize{anything}}}
\put(14,70){\footnotesize{anything}}
\put(13,62){\footnotesize{anything}}
\put(34,56){\rotatebox{22}{\footnotesize{anything}}}
\put(50,10){\rotatebox{22}{\footnotesize{anything}}}
\end{overpic}
\caption[]{\emph{figure caption here}}
\label{fig_label}
\end{figure}
在latex文件里:
\begin{figure}[bt]
\centering
\begin{overpic}[width=3.35in]{image path}
\put(9,30){\rotatebox{-45}{\footnotesize{anything}}}
\put(50,24){\rotatebox{23}{\footnotesize{anything}}}
\put(14,70){\footnotesize{anything}}
\put(13,62){\footnotesize{anything}}
\put(34,56){\rotatebox{22}{\footnotesize{anything}}}
\put(50,10){\rotatebox{22}{\footnotesize{anything}}}
\end{overpic}
\caption[]{\emph{figure caption here}}
\label{fig_label}
\end{figure}
http://www.ilovematlab.cn/thread-215995-1-1.html
在IEEE論文(包括部分會上傳到IEEE Xplore的會議論文)投稿時,要求將論文上傳到IEEE PDF Express中進行驗證,驗證文章是否符合IEEE的相關規定。當時出現的錯誤是:
Font Time-Roman is not embedded (47x)
Font Helvetica is not embedded (4x)
我當時的論文是latex生成的,按理不會產生這類問題。后來查到原因是因為我所用的圖片是matlab直接導出的eps格式的圖形。
通過網上查找,找到了如下一種解決方法:解決Matlab圖片導出為eps格式的字體嵌入問題
但是,該方法略顯復雜。我采用的方法是:
通過matlab做好圖形后,通過點擊圖形界面的edit->copy figure,然后將該圖形貼到visio中,再將其打印成pdf格式,最后再通過Adobe Acrobat將其轉換為eps格式,這樣出來的圖形就不會有這個問題了,並且新的文檔也能通過IEEE PDF Express的驗證。
(4)http://www.ilovematlab.cn/thread-14152-1-1.html
多謝math幫助,我是這么解決的(不用修改fig文件的字體就可以在pdf里將所有字體embeded):
其實很簡單,先生成ps文件,然后在命令行輸入:
gswin32c -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/printer -dCOMPatibilityLevel=1.4 -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -sOutputFile=yourfile.pdf yourfile.ps
生成的pdf文件就全部都能embed了,哈哈
原貼如下:
http://alephnk.spaces.live.com/Blog/cns!29897E24580CA11!556.entry
Latex文件轉成pdf后的字體嵌入問題的解決
一般情況下,字體都是能夠嵌入的。但是如果論文里邊用了matlab生成的eps圖,則有問題了。一般matlab默認的字體是Helvetica,這個一般的windows系統上是沒有這個字體的,而eps文件是ascii文件,對於字體,里邊只是給出字體的名稱。這樣就導致轉換成pdf的時候沒有辦法嵌入該字體,往往導致ieee eXplore檢驗不合格。
只能硬改了,將eps文件中的
%%IncludeResource: font Helvetica
/Helvetica /WindowsLatin1Encoding 120 FMSR
第二行改為
/ArialMT /WindowsLatin1Encoding 120 FMSR
ArialMT是系統上有的字體。而且改了之后,重新對tex文件用latex命令轉換成dvi,再用dvi2pdf命令轉換成pdf,則字體都能夠嵌入了。
有的論文中貼的不是eps圖片而是emf圖片,這個格式可能不涉及字體的問題,emf文件不是ascii文件而是二進制文件,估計字體都融合到文件里邊了,emf文件本身就比eps的要大很多。
// 昨天跟人討論,有一個方法,也可以在dvi2pdf無法嵌入的時候用。就是生成pdf之后,再用adobe acrobat打開,然后重新打印成pdf,在這個時候選擇一下要嵌入的字體。
再附:
先由dvi生成ps文件,然后在命令行下用gswin32c命令來生成pdf文件,效果更好:
gswin32c -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite
-dPDFSETTINGS=/printer -dCOMPatibilityLevel=1.4
-dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true
-sOutputFile=youfile.pdf yourfile.ps
該命令跟了一大堆參數,直接拷貝到命令行窗口即可。這種做法的好處是什么字體都嵌入了,包括Helvetica(URW捐給GS的Helvetica)、Times-Roman等等。【水木社區tex版的snoopyzhao提供】
另外, http://www.grassbook.org/neteler/highres_pdf.html 也提供了解決該問題的做法,可做參考【水木社區tex版hashhsah提供】,或者在matlab中用octave畫圖,該命令調用gnuplot【水木社區tex版的realwhz提供】
其實很簡單,先生成ps文件,然后在命令行輸入:
gswin32c -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/printer -dCOMPatibilityLevel=1.4 -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -sOutputFile=yourfile.pdf yourfile.ps
生成的pdf文件就全部都能embed了,哈哈
原貼如下:
http://alephnk.spaces.live.com/Blog/cns!29897E24580CA11!556.entry
Latex文件轉成pdf后的字體嵌入問題的解決
一般情況下,字體都是能夠嵌入的。但是如果論文里邊用了matlab生成的eps圖,則有問題了。一般matlab默認的字體是Helvetica,這個一般的windows系統上是沒有這個字體的,而eps文件是ascii文件,對於字體,里邊只是給出字體的名稱。這樣就導致轉換成pdf的時候沒有辦法嵌入該字體,往往導致ieee eXplore檢驗不合格。
只能硬改了,將eps文件中的
%%IncludeResource: font Helvetica
/Helvetica /WindowsLatin1Encoding 120 FMSR
第二行改為
/ArialMT /WindowsLatin1Encoding 120 FMSR
ArialMT是系統上有的字體。而且改了之后,重新對tex文件用latex命令轉換成dvi,再用dvi2pdf命令轉換成pdf,則字體都能夠嵌入了。
有的論文中貼的不是eps圖片而是emf圖片,這個格式可能不涉及字體的問題,emf文件不是ascii文件而是二進制文件,估計字體都融合到文件里邊了,emf文件本身就比eps的要大很多。
// 昨天跟人討論,有一個方法,也可以在dvi2pdf無法嵌入的時候用。就是生成pdf之后,再用adobe acrobat打開,然后重新打印成pdf,在這個時候選擇一下要嵌入的字體。
再附:
先由dvi生成ps文件,然后在命令行下用gswin32c命令來生成pdf文件,效果更好:
gswin32c -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite
-dPDFSETTINGS=/printer -dCOMPatibilityLevel=1.4
-dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true
-sOutputFile=youfile.pdf yourfile.ps
該命令跟了一大堆參數,直接拷貝到命令行窗口即可。這種做法的好處是什么字體都嵌入了,包括Helvetica(URW捐給GS的Helvetica)、Times-Roman等等。【水木社區tex版的snoopyzhao提供】
另外, http://www.grassbook.org/neteler/highres_pdf.html 也提供了解決該問題的做法,可做參考【水木社區tex版hashhsah提供】,或者在matlab中用octave畫圖,該命令調用gnuplot【水木社區tex版的realwhz提供】
https://www.zhihu.com/question/28898001/answer/42514933
作者:匿名用戶
鏈接:https://www.zhihu.com/question/28898001/answer/42529143
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
鏈接:https://www.zhihu.com/question/28898001/answer/42529143
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
這個屬於MATLAB自身的問題,就是它在生成EPS、PDF等矢量圖時沒有嵌入所需的字體,因此包括CJK文字在內的許多符號都成了亂碼,僅靠MATLAB自身是無法解決的,必須借助第三方工具:
- Foxit Reader:裝Foxit Reader,免費版即可,在MATLAB figure窗口中選擇打印,然后用Foxit Reader打印到文件,即可得到完整字體嵌入的PDF文件,美中不足是生成的PDF文件尺寸無法自適應figure的尺寸,結果往往是一整張PDF只有中間一小塊是圖像,四周一大片空白
- matlab2tikz:nschloe/matlab2tikz · GitHub,將MATLAB figure轉為TikZ (Pgfplots)指令文件,轉換后之后在LaTeX里邊直接input就行
- export_fig:altmany/export_fig · GitHub,第三方做的圖像導出工具,可以導出EPS、PDF並嵌入字體
- overpic或tikz:在MATLAB figure中不要添加任何非ASCII字符(可以用空格做占位符留出足夠空白),將圖片保存為EPS,然后在LaTeX中導入圖片,用overpic或tikz宏包往上加漢字
