Skip to content
liziwl edited this page Apr 16, 2022 · 9 revisions

常见问题汇总

嵌入字体的建议

如何检查字体嵌入

  1. 下载并使用 Adobe Acrobat Reader 打开 pdf;
  2. 右键 pdf 页面 -> 选择 “文档属性” -> 选择 “字体”;
  3. 查看字体是否被标记“已嵌入”。

matplotlib 画图

此外,我发现如果插入 matplotlib 生成的矢量图(eps/pdf),默认字体类型是 Type3,在 Adobe reader 中不会显示被嵌入。建议使用已经嵌入字体的 pdf 类型插入矢量图,避免画图环境和编译环境不同导致字体嵌入失败。而不再推荐使用 eps 插入矢量图,并且 eps 编译时更慢;如果能画图环境和编译环境相同,且使用了 Type1 类型字体,依然可以保证 eps 被插入到论文中时正确嵌入字体。

以下是使用 matplotlib 生成嵌入 Type1 类型字体的 pdf 文件(推荐)或 eps 文件的命令。

import matplotlib.pyplot as plt

# 设置默认字体格式,默认使用 Type1 字体
plt.rc('font', family='Times New Roman', size=14)
# pdf默认字体修改
plt.rcParams['pdf.fonttype'] = 42
# eps默认字体修改
plt.rcParams['ps.fonttype'] = 42

# 省略 matplotlib 画图命令...

# 保存图片为 pdf
plt.savefig('FIGURE_NAME.pdf', bbox_inches='tight', pad_inches=0)
# plt.show()

MS PowerPoint 画图

  1. 选择 导出 -> Adobe pdf 格式,而不是保存,即可嵌入字体。

MS Excel 画图

  1. 选择 右键图表 -> 另存为图片 -> 选择 pdf 格式,而不是保存,即可嵌入字体。

MatLab 画图

x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)

xlabel("X Label")
ylabel("Y Label")
fontname(gcf, "Times")
  1. 保存为 pdf。该 pdf 还没有嵌入字体。
  2. 使用下面的补救措施(Adobe Reader 打印)。
  3. 得到已经嵌入字体的 pdf。

pdf 未嵌入字体的补救措施

该 pdf 插图使用 Adobe Reader 打印,再插入论文。

  1. 打开 pdf 文件后,点击文件 -> 打印;
  2. 选择打印机名称到Adobe pdf->属性->默认设置【标准】-> 编辑 -> 字体,然后将“字体来源”中的所有字体都添加到“总是嵌入”边框;
  3. 取消勾选:“仅依靠系统字体:不使用文档字体”;
  4. 点击打印,保存已嵌入的文件。
Clone this wiki locally