matlab eps 字体,matlab eps 字体用AI打开乱码的解决

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}

http://www.ilovematlab.cn/thread-215995-1-1.html

(3)

Matlab画的eps图片中的Helvetica字体不能嵌入问题的解决办法

在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提供】

https://www.zhihu.com/question/28898001/answer/42514933

作者:匿名用户

链接: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宏包往上加汉字

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值