标签:
提交给ACM与IEEE的论文中,除了有明确具体字体类型的Type1和TrueType字体外,经常会出现Latex不能识别的Type3字体。这种字体在印刷刊物中有可能出现印刷错误,编译为.dvi文件时也有几率发生错误,在正式文档中是需要尽量规避的。
一、Type3 文件的识别
1、整体识别
1)阅读器
用adobe/foxit 等reader打开pdf文件,"文件 -> 属性" 打开属性对话框,找到“字体”项目,可以看到pdf所包含的字体信息。通常如果有type3,会直接显示在最前面。
2)Linux下使用命令
要检查PDF文件中包含了,或者使用了什么字体,你可以使用命令行工具:pdffonts。它是一个PDF字体分析工具。pdffonts是Poppler PDF工具集包中的一个部分。
a) 直接使用命令
pdffonts可以列出PDF文档中使用的所有字体。
pdffonts的基本用法: pdffonts paper.pdf
pdffonts工具显示了各个已使用的字体的各种信息,如字体名称/类型等等。看输出是否含有type3字体。
b) linux下安装命令支持包
要安装Poppler到Debian,Ubuntu或Linux Mint:
pdffonts可以列出PDF文档中使用的所有字体。pdffonts的基本用法如下。
2、问题定位
1)Windows
先注释全文,编译查看pdf类型,通常是type1。
然后逐章解开注释,编译查看pdf类型,直到出现type3。
再于没问题的上一章和有问题的这一章之间逐步注释并编译查看,直到定位到type3所在。
2)Linux
如果一个PDF文档有多页,你可以使用“-f”(首页)和“-l”(末页)选项来限制字体扫描页面范围。例如,如果你想要找出某个文档中的5-10页中使用了哪种字体,运行该命令 $ pdffonts -f 5-l 10 doc.pdf
二、Type3 文件的处理
1)整体处理
先考虑官方的建议,在文件头部加入以下命令并重新编译:
\usepackage[T1]{fontenc}
\usepackage{aecompl}
问题依旧的话,应该是插图中含有type3字体。 比如用Python或Matlab画图,默认的似乎就是输出成type3,那么往下看2)。
2)对已有图片的处理
Python和Matlab生成的图片字体,默认输出就是Type3。有几种可能的处理方法:
a) eps2eps
eps2eps命令是包含在texlive发行版中的小工具,它能把一个eps图片中字体全部曲线化,转换后的eps再转成pdf时,不带任何字体信息。
所以我们可以将出问题的图片(如果是eps格式)用eps2eps转换一遍。
用法:Accessories -> Command Prompt 打开命令行,接着 eps2eps your.eps output.eps
但是,有人指出这样图片会变得不清晰;笔者这里是出现图片会被部分截取的情况。
b) epstopdf, pdftops
先转成pdf再转回eps, 比如对fig.eps, Accessories -> Command Prompt 打开命令行, 然后使用命令:
epstopdf fig.eps fig.pdf
pdftops -eps -r 400 fig.pdf fig.eps
笔者这边是出现pdftops命令不兼容的情况。
c) convert-to-eps website
将问题图片上传至http://image.online-convert.com/convert-to-eps,下载下来也是eps,但字体也会被曲线化,从而使得图片不再是type3。
Reference
1. 提交MNRAS的pdf文件中type3字体问题 http://asc.2dark.org/node/188
2. origin作图,避免里面有Type 3 字体 http://www.cnblogs.com/pankejia/p/3476432.html
标签:
原文地址:http://www.cnblogs.com/zeedmood/p/5782142.html