快速EDAS字体嵌入问题

在用edas向国际会议投稿的时候,往往要检查pdf稿件的格式,例如页边距、行距、字体等。经常碰到的一个问题就是字体未嵌入到文件中。因为大家一般用CTex里面的ps2pdf生成pdf文件,图片中的字往往会导致这个问题的出现。edas上提供了一些解决的方法。这里我给出一种很简单的解决方法(推荐使用这种方法):
       1.用acrobat打开不满足要求的pdf文档

       2.菜单"编辑->首选项",选择"转换为pdf"

       3.在中间的框里,选择Word或PostScript/EPS或其它,只要右侧是灰的,并且"编辑选项"按钮可点就行

       4.点"编辑选项"按钮,然后编辑Adobe PDF设置(点"编辑"按钮)

       5.在最左边点击"字体",把右边的从不嵌入框中的都删掉,把上面子集化...前面的勾勾去掉,然后另存为,取个名字。

       6.打印,选择Adobe PDF打印机,在属性中选择刚刚保存的设置,再打印就大功告成了!!

(比如,我的设置为EDASsetting.joboptions)以后,只需直接选择EDASsetting.joboptions即可,配置文件在C:\Documents and Settings\Administrator\Application Data\Adobe\Adobe PDF\Settings文件夹以及D:\Program Files\Adobe\Acrobat 8.0\Acrobat\Settings文件夹下可找到:EDASsetting.joboptions

 

其它方法:

投 IEEE的会议论文时,有些会议要求一定要投pdf格式的文档,而且所有字体一定要embeded,所谓字体embeded就是把这种字体嵌入文档,那么 以后即使这个文档在其他任何系统下打开,无论该系统有没有这个字体,都不会出现乱码,可移植性比较强,当然嵌入后文档体积会有所增大。

首先告诉大家如何看自己的pdf文档字体是否嵌 入:在pdf格式的文件中,点“文件”-> “文档属性”-> “字体”,显示的就是你文档中用的所有字体了,每一个字体后面,如果注明了“embeded(已嵌入)”或“embeded subset(已嵌入子集)”,就说明是嵌入了,否则就要想办法。

出现问题一般都是Matlab,莫名其妙的默认字体Helvetica!没发现Matlab中哪个地方可以修改默认字体的,有知道的同志麻烦告知一下,不胜感激~

当然可以每次画图的时候都设置一下,这样就可以避免乱七八糟的字体!

set(gca,'FontSize',10, 'FontName','Arial')
xlabel('test','FontSize',10,'FontName','Arial')
ylabel('test','FontSize',10,'FontName','Arial')
legend('test','FontSize',10,'FontName','Arial')
title('test','FontSize',13,'FontName','Times New Roman')

如果图已经画好,那么可以用以下方法解决,个人推荐第三个

解决办法

1.简单的方法,下载Cutepdf

虚拟pdf打印机,将生成的pdf用此打印机重新输出为pdf文件就行了。下载地址:http://www.cutepdf.com/,不是很完美~~~~

2.另一个简单的方法,先生成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了,哈哈

3. 彻底的方法(推荐)
针对dvi2pdf的生成方式,提供一种彻底的解决方法,在生成的过程中将所有字体嵌入pdf中。
这样生成的pdf直接就OK。编辑下面这个配置文件
~~~~CTEX\MiKTeX\dvipdfm\config\dvipdfmx.cfg

将下面这段替换%% GhostScript (MiKTeX):
D "mgs -q -dNOPAUSE -dBATCH -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dUseFlateCompression=true -sOutputFile=%o %i -c quit"


原来MiKTeX使用了一个叫mgs的命令完成这一步的,它的参数几乎和gs一样,添加相应的参数变成下面的这句话,就可以将达到嵌入所有字体的效果了。

D "mgs.exe -sPAPERSIZE=a4 -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/printer -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -dCompatibilityLevel=1.4 -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dUseFlateCompression=true -sOutputFile="%o" "%i" -c quit"


此方法参考http://hi.baidu.com/heishuihe2008/blog/item/9b20edcdb3faf3590eb34532.html
如果用ps2pdf,也请参考上述连接。
4.比较BT的方法:

直接编辑eps文件,将eps文件中的
%%IncludeResource: font Helvetica
/Helvetica /WindowsLatin1Encoding 120 FMSR

第二行改为
/ArialMT /WindowsLatin1Encoding 120 FMSR


还有一些其他方法,我没有试过,记录于此方便大家(这些方法太麻烦):

1、如果是用word文档转pdf,推荐使用adobe acrobat的打印机功能,在打印机属性里面,点“编辑”(就在“默认设置”的右边),进去后找到“字体”,然后这里有一个“嵌入所有字体”,记得要打 钩,然后把下面的“never embeded”的字体全部清除,再把左边的所有字体都加入到“always embeded”里面,再打印成pdf,就能嵌入所有的字体了。(注:如果是系统没有安装的字体,必须先安装才可以)


2、如果是用LaTeX写的,我发现LaTeX会自动嵌入所有字体,唯独Helvetica字体不行,我现在采用的解决方法是先 tex文件 -> dvi文件,然后dvi文件 -> ps文件, 最后再用adobe distiller把ps文件转成pdf文件,就能全部嵌入了,如果发现有的字体没有找到,需要在distiller里面设置一下字体目录。

版权声明:本文为小平果原创文章,转载请注明:http://blog.youkuaiyun.com/i10630226

转载于:https://www.cnblogs.com/dingxiaoyue/p/4948281.html

<think>嗯,用户遇到了EDAS提交论文时的字体问题,具体是TimesNewRomanPSMT被识别为Type 3字体。这通常发生在使用matplotlib等工具生成的PDF图中,但用户提到的是主文字体,需要全面排查。 用户可能在Overleaf上使用LaTeX编译,但最终PDF仍包含Type 3字体。根据引用[4],问题可能源于图片或主文档字体设置。特别要注意的是,即使用户使用官方模板,自定义设置仍可能导致此问题。 需要引导用户分步排查:首先确认是否所有文字都用了Type 1字体,重点检查matplotlib图表(引用[2]提到这是常见源头)。用户可能忽略了图表中的字体设置,或者误用了某些Latex包。建议用户用pdffonts命令验证PDF字体,这是引用[4]推荐的诊断方法。 解决方案上,针对主文档要强制使用Type 1字体。在preamble添加\usepackage[T1]{fontenc}和\usepackage{times}组合应该有效,但要注意times包可能过时,改用mathptmx更稳妥。对于图表,必须确保matplotlib禁用Type 3字体(引用[2]的解决方案),这个python设置容易被忽略。 用户可能已经尝试过基础方法但未奏效,所以需要提供进阶方案:比如检查是否嵌入了所有字体(引用[3]的核心问题),以及Overleaf的编译器设置(XeLaTeX可能更好处理字体)。最后要提醒用户重新编译后务必用pdffonts二次验证,因为缓存可能导致假象。 相关问题设计要覆盖延伸场景:比如其他期刊的类似问题(引用[3])、摘要格式报错(引用[1]的回车问题)等,帮助用户建立系统排查能力。</think>在 Overleaf 中解决 EDAS 提交出现的 `fonttype TimesNewRomanPSMT Type 3` 错误,需确保所有字体均为 **Type 1 (PostScript)** 格式而非 Type 3。以下是完整解决方案: --- ### **解决方法** #### 1. **检查并修改主文档字体设置** 在 LaTeX 文档的导言区(`\documentclass` 之后)添加以下代码: ```latex \usepackage[T1]{fontenc} % 启用 Type 1 字体编码 \usepackage{times} % 强制使用 Times New Roman 的 Type 1 版本 ``` 或更推荐: ```latex \usepackage[T1]{fontenc} \usepackage{mathptmx} % 更稳定的 Times 字体包,兼容数学符号 ``` #### 2. **修复图表中的 Type 3 字体** 若图表由 Python `matplotlib` 生成: ```python import matplotlib.pyplot as plt plt.rcParams['pdf.fonttype'] = 42 # 输出 Type 1 字体(而非默认的 Type 3) plt.rcParams['ps.fonttype'] = 42 # 同上,确保兼容性 ``` 重新生成图表并替换旧文件。 #### 3. **检查其他嵌入字体** 在 Overleaf 的 **菜单 > 编译器** 中选择 **XeLaTeX**(对字体兼容性更好)。编译后下载 PDF,用命令行检查字体类型: ```bash pdffonts your_paper.pdf ``` 若仍有 `Type 3` 条目,检查是否: - 使用了非常规符号(如特殊 Unicode 字符) - 存在未更新的图表文件 - 引用了包含 Type 3 字体的外部 PDF #### 4. **强制嵌入所有字体** 在导言区添加: ```latex \usepackage{psfrag} \pdfinclusioncopyfonts=1 % 确保字体完全嵌入 ``` --- ### **验证结果** 1. 在 Overleaf 用 **XeLaTeX** 编译。 2. 下载 PDF 后运行 `pdffonts your_paper.pdf`。 3. 确认所有字体 `emb` 列为 **yes** 且 `type` 列为 **Type 1**。 > **原因分析**:Type 3 字体是矢量轮廓但非标准格式,EDAS 系统因兼容性要求拒绝此类文件[^3]。Matplotlib 默认输出 Type 3 是常见诱因[^2][^4],而 LaTeX 主文档字体设置错误也可能导致此问题。 --- ### **相关问题** 1. 如何检查 PDF 中是否存在 Type 3 字体? 2. 除 Times New Roman 外,哪些字体EDAS 提交中容易触发 Type 3 错误? 3. 若图表无法修改(如第三方提供),如何转换其中的 Type 3 字体? 4. EDAS 摘要因回车符报错 "Font font_1 is of type Type 3" 该如何解决[^1]? [^1]: EDAS 投稿系统检测到注册摘要与 PDF 摘要内容不一致(如额外回车符)会误报 Type 3 错误,需保持两者完全一致。 [^2]: Matplotlib 默认生成 Type 3 字体,需主动设置 `plt.rcParams['pdf.fonttype'] = 42` 修复。 [^3]: EDAS 要求所有字体必须嵌入且为 Type 1 格式,否则拒稿。 [^4]: 可通过 `pdffonts` 命令定位问题字体来源(主文档或图表)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值