Skip to content

字体配置

mohuangrui edited this page Apr 26, 2019 · 38 revisions

手动配置字体

ucasthesis 根据操作系统而自动调用配置中英文字体:

  • Windows (自动设定 fontset=windows): 中文-SIM 类字体,英文-Times New Roman
  • MacOS (自动设定 fontset=mac): 中文-SC 类字体,英文-Times New Roman
  • Linux (自动设定 fontset=fandol): 中文-fandol 字体,英文-Times New Roman
  • Adobe (手动设定 fontset=adobe):中文-Adobe 中文字体,英文-Times New Roman

如果想手动指定特定字体选项,只须在 Thesis.tex 中给定 fontset 选项即可:

\documentclass[twoside,fontset=选项]{Style/ucasthesis}%
选项 可为 windows 或 mac 或 adobe 或 fandol

手动指定字体选项时,请确保当前操作系统已安装 fontset=选项 所需要的相应字体。

Windows 系统编译得到的 PDF 无法拷贝文本

使用 Windows (fontset=windows) 系统字体时可能会导致拷贝 PDF 中的文本到其他文本编辑器时出现乱码,这个问题源于xelatex的一个bug(ctex issue, tex.se, xetex bug),其可能导致论文查重率偏低而无法反映真实重复率,问题的解决可以考虑如下方案中的一个:

  1. 使用
最新版 ucasthesis (版本 >= 2019年4月24日) + Windows 10 + 最新版 MikTex (>= MikTex 2.9.7)

初步测试表明在如上配置下,编译生成的 PDF 中的所有内容皆可正确复制拷贝而不产生乱码。

  1. 在 MacOS 系统而不是 Windows 系统上编译。

  2. 在 Windows 系统上安装使用 Adobe (fontset=adobe) 字体,Adobe字体的下载和安装请见下面。

Linux 系统的字体配置

ucasthesis 在 Linux 系统下中文采用 ctex 默认配置的 fandol 字体,英文采用 Linux 系统自带的 Freeserif 这一类 times 字体。 fandol 字体字重完备但是字体库相对较小,如果论文有较多生僻字,可能无法正常显示。这时可考虑在 Linux 系统上安装其他字体,比如 Windows 的或是 MacOS 的或是其他来源的比如 Adobe 字体。

当同时安装好 fontset=选项 所需的中英文字体后,即可启用 fontset=选项 开始调用 fontset 选项所指定的字体集。

Adobe 字体下载

Adobe 字体的下载只需 Google Adobe 字体的各个名字即可找到源,如:

Adobe字体下载源1:

Adobe Github

Adobe 下载源2

AdobeSongStd

AdobeHeitiStd-Regular

AdobeKaitiStd-Regular

AdobeFangsongStd-Regular

图中文本渲染错误出现异常加粗

问题的出现可能有多方面的原因:

  • 导出图时启用了透明度(transparency),导致 Adobe Reader PDF 阅读器的 anti-aliasing 处理异常, 而换其他阅读器或打印时不会有渲染问题。 此问题一般只发生于位图格式,如 .jpg 或 .png,解决办法就是去掉图的透明度(transparency)。
  • tex.se 源一tex.se 源二,若图格式为 .pdf 或 .eps 等矢量图时出现字体加粗问题,则为 xetex 的一个 bug 所导致(已对英文字体进行了修复,中文字体仍存在问题)。其解决方法为:
    • 输出图时选择不嵌入字体在图中,特别是 Windows 系统上所生成的图,比如模板所采用的 .pdf 图都没有嵌入字体,测试发现似乎不会出现异常加粗的问题。 检查 PDF 中字体的方法:
      • Windows: findstr FontName document.pdf
      • MacOS: strings document.pdf | grep -i FontName
      • Linux: pdffonts document.pdf
    • 避免在矢量图中使用中文可消除此问题。如果有大量中文,可考虑使用 .jpg 或 .png 等位图格式, 亦可消除问题。
    • 如果不想修改图本身且需要使用中文,则可考虑对每一个 \includegraphics{} 命令进行如下处理:
\begingroup
\fontspec{Times New Roman}{\color{white}.}%
\includegraphics{plot}
\endgroup
  • 测试发现,此异常加粗主要缘于加粗图标题文字所导致,从而,如果不想采用上述方案,则可考虑取消对标题加粗即可,即在 artratex.sty 中将
\RequirePackage[font={small,bf},skip=8pt,labelsep=space]{caption}% options: [margin=10pt,labelfont=bf]

改为

\RequirePackage[font={small},skip=8pt,labelsep=space]{caption}% options: [margin=10pt,labelfont=bf]
Clone this wiki locally