ElegantPaper icon indicating copy to clipboard operation
ElegantPaper copied to clipboard

中文编译时字体丢失

Open zdworld opened this issue 2 years ago • 4 comments

全部字体都无法找到。

详细情况: Texlive版本2021,xelatex-bib-2*xelatex编译,Elegantpaper-009,win10中文版 报错代码Package fontspec: The font "xxxx" cannot be found.xxxx是在cls里声明的所有字体,切了方正字体也无法编译。 但是这些字体我都是有安装的,且几个月前还能正常编译,主要变化就是之前在这台机器上新建了另一个用户, 随后全部字体都重新为所有用户安装了一遍,但是编译依旧无法通过。

zdworld avatar Apr 18 '22 13:04 zdworld

更加清楚的描述下你的问题吧,代码,系统,编辑器,模板版本,TeX Live 版本。

EthanDeng avatar Apr 20 '22 04:04 EthanDeng

我在 Mac 上也遇到类似的问题,因为系统安装是英文系统,所以没有 Kaishu SC 等字体。

解决方案

下载 cls 文件,将所有与 fontspec 有关语句注释,即可避免报错,但是字体会使用默认字体替换,效果不一定最佳。

% \PassOptionsToPackage{no-math}{fontspec}
% \PassOptionsToPackage{quiet}{fontspec}
\RequirePackage{iftex}

\ifXeTeX
%   \RequirePackage[no-math]{fontspec}
%   \setmainfont{texgyretermes}[
%     UprightFont = *-regular ,
%     BoldFont = *-bold ,
%     ItalicFont = *-italic ,
%     BoldItalicFont = *-bolditalic ,
%     Extension = .otf ,
%     Scale = 1.0]
    
%   \setsansfont{texgyreheros}[
%     UprightFont = *-regular ,
%     BoldFont = *-bold ,
%     ItalicFont = *-italic ,
%     BoldItalicFont = *-bolditalic ,
%     Extension = .otf ,
%     Scale = 0.9]
\else
  \RequirePackage{newtxtext}
  \RequirePackage[scaled=.90]{helvet}
\fi

我个人认为开发者可能最好需要设计一个 fallback 或其他选项之类的,并不是所有人电脑上都有所有对应的字体。所以我自己在创作 LaTeX cls 的时候会尽量避免暴力调用 fontspec

Teddy-van-Jerry avatar Apr 21 '22 16:04 Teddy-van-Jerry

  1. 如果你是中文系统,那么你会有楷体之类的字体,默认不会出现问题(win 更不用说);
  2. 如果你是中文系统,在极端情况下,你没有楷体等中文字体,你可以参考字体设置部分的自定义字体或者使用方正字体;
  3. 如果你不是中文系统,你没有中文字体,你不能用中文选项;
  4. 如果你不是中文系统,你有中文字体,你应该看文档说明,写了默认调用的 ctex 选项,会自动处理各个系统下字体的 fallback;如果你还要最佳效果,也请安装字体。
  5. 你所注释的只是 TeX Live 安装之后带的字体,并不是你所说的其他人没有对应字体,本模板现在绑定 TeX Live/MacTeX 发布,正常来说是不会缺失英文字体的。

EthanDeng avatar Apr 22 '22 00:04 EthanDeng

  1. 如果你是中文系统,那么你会有楷体之类的字体,默认不会出现问题(win 更不用说);
  2. 如果你是中文系统,在极端情况下,你没有楷体等中文字体,你可以参考字体设置部分的自定义字体或者使用方正字体;
  3. 如果你不是中文系统,你没有中文字体,你不能用中文选项;
  4. 如果你不是中文系统,你有中文字体,你应该看文档说明,写了默认调用的 ctex 选项,会自动处理各个系统下字体的 fallback;如果你还要最佳效果,也请安装字体。
  5. 你所注释的只是 TeX Live 安装之后带的字体,并不是你所说的其他人没有对应字体,本模板现在绑定 TeX Live/MacTeX 发布,正常来说是不会缺失英文字体的。

摸摸头~

Liam0205 avatar Apr 22 '22 02:04 Liam0205