XiangyunHuang / ElegantBookdown

:book: A bookdown wrapper for ElegantBook
https://xiangyunhuang.github.io/ElegantBookdown/
Creative Commons Attribution 4.0 International
131 stars 26 forks source link

! Package fontspec Error: The font "NotoSerifCJKsc-Regular" cannot be found. #27

Closed A-Pai closed 2 years ago

A-Pai commented 2 years ago

! Package fontspec Error: The font "NotoSerifCJKsc-Regular" cannot be found.

����: LaTeX failed to compile elegantbookdown.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. See elegantbookdown.log for more info. ִֹͣ�� ����: bookdown::render_book() failed to render the output format 'bookdown::pdf_book'. ִֹͣ��

Exited with status 1.

A-Pai commented 2 years ago

只需要安装这些就可以了吗?还需要别的设置或者安装吗? image

fyuniv commented 2 years ago

你的系统里需要安装这个字体: Noto Serif CJK SC。如果没有,你需要在 preamble.tex 里把这个字体替换成其它你系统里有的中文字体。或者你可以下载安装 Noto Serif。

A-Pai commented 2 years ago

你的系统里需要安装这个字体: Noto Serif CJK SC。如果没有,你需要在 preamble.tex 里把这个字体替换成其它你系统里有的中文字体。或者你可以下载安装 Noto Serif。 --怎么安装?右键,对所有用户安装? --NotoSerifCJKsc-Regular.otf,这个字体可以吗?

A-Pai commented 2 years ago

这样就可以了吗? image

fyuniv commented 2 years ago

把 preamble.tex 里面的以下的内容

\setCJKmainfont[
  Path = {\string~/Library/Fonts/},
  BoldFont=NotoSansCJKsc-Bold,
  ItalicFont=NotoSerifCJKsc-SemiBold,
  Extension = .otf
  ]{NotoSerifCJKsc-Regular} 
\setCJKsansfont[
  Path = {\string~/Library/Fonts/},
  BoldFont=NotoSansCJKsc-Bold,
  Extension = .otf
  ]{NotoSerifCJKsc-SemiBold} 
\setCJKmonofont[
  Path = {\string~/Library/Fonts/},
  BoldFont=NotoSansCJKsc-Bold,
  ItalicFont=NotoSerifCJKsc-SemiBold,
  Extension = .otf
  ]{NotoSerifCJKsc-Regular} 

改成

\setCJKmainfont[BoldFont={Noto Serif 粗体},ItalicFont={Noto Serif 斜体}]{Noto Serif 常规} 
\setCJKsansfont[BoldFont={Noto Serif 粗体},ItalicFont={Noto Serif 斜体}]{Noto Serif 常规}  
\setCJKmonofont[BoldFont={Noto Serif 粗体},ItalicFont={Noto Serif 斜体}]{Noto Serif 常规} 

试试。 关于 XeLaTeX 编译时字体调用的方法,可以参加 https://cn.overleaf.com/learn/latex/XeLaTeX

A-Pai commented 2 years ago

把 preamble.tex 里面的以下的内容

\setCJKmainfont[
  Path = {\string~/Library/Fonts/},
  BoldFont=NotoSansCJKsc-Bold,
  ItalicFont=NotoSerifCJKsc-SemiBold,
  Extension = .otf
  ]{NotoSerifCJKsc-Regular} 
\setCJKsansfont[
  Path = {\string~/Library/Fonts/},
  BoldFont=NotoSansCJKsc-Bold,
  Extension = .otf
  ]{NotoSerifCJKsc-SemiBold} 
\setCJKmonofont[
  Path = {\string~/Library/Fonts/},
  BoldFont=NotoSansCJKsc-Bold,
  ItalicFont=NotoSerifCJKsc-SemiBold,
  Extension = .otf
  ]{NotoSerifCJKsc-Regular} 

改成

\setCJKmainfont[BoldFont={Noto Serif 粗体},ItalicFont={Noto Serif 斜体}]{Noto Serif 常规} 
\setCJKsansfont[BoldFont={Noto Serif 粗体},ItalicFont={Noto Serif 斜体}]{Noto Serif 常规}  
\setCJKmonofont[BoldFont={Noto Serif 粗体},ItalicFont={Noto Serif 斜体}]{Noto Serif 常规} 

试试。 关于 XeLaTeX 编译时字体调用的方法,可以参加 https://cn.overleaf.com/learn/latex/XeLaTeX 这么改后还是报错了,缺少相应的字体 但是如果把那一段删掉,可以编译成功,最后有一个警告:

[WARNING] Could not convert TeX math \bcancel{///}, rendering as TeX: \bcancel{///} ^ unexpected control sequence \bcancel expecting "%", "\label", "\tag", "\nonumber" or whitespace

fyuniv commented 2 years ago

你可能要邮件点你已经安装好的 Noto 字体查看字体的名称。有可能是 Noto Serif SC Regular。 那个 \bcancel 的警告是因为 Mathjax 不支持。这个暂时没办法。你可以把它换成其它命令试试。

XiangyunHuang commented 2 years ago

@A-Pai @fyemath 我去掉了自定义字体设置 https://github.com/XiangyunHuang/ElegantBookdown/commit/27144cfebd688fe4625c99c9993284ec119ee5e7 ,恢复为默认的 ctex 宏包设置,即根据用户系统决定调用字体。