`软件包 fontspec 警告:字体 XXX 不包含请求的脚本“CJK”`,但从视觉上看它确实包含

`软件包 fontspec 警告:字体 XXX 不包含请求的脚本“CJK”`,但从视觉上看它确实包含

我在 LuaLaTeX/ltjsarticle 项目中出现以下警告:

Package fontspec Warning: Font "fonts/HGS_Mincho/HGRMB.ttc" does not contain
requested Script "CJK".

我不太了解中文和韩语,但日语显示正确:

在此处输入图片描述

\documentclass[a4paper, twoside]{ltjsarticle}

\usepackage{luatexja-fontspec}

\edef\ProjectAbsolutePath{\directlua{tex.sprint((lfs.currentdir():gsub('\string\\', '/')))}/}

\setmainjfont[
  Path            = \ProjectAbsolutePath,
  UprightFont     = fonts/HGS_Mincho/HGRMB.ttc,
  BoldFont        = fonts/HGS_Mincho/HGRME.ttc,
  ItalicFont      = fonts/HGS_Mincho/HGRMB.ttc,
  BoldItalicFont  = fonts/HGS_Mincho/HGRME.ttc
]{HGS Mincho}

\setsansjfont[
  Path            = \ProjectAbsolutePath,
  UprightFont     = fonts/HGS_Gothic/HGRGM.ttc,
  BoldFont        = fonts/HGS_Gothic/HGRGE.ttc,
  ItalicFont      = fonts/HGS_Gothic/HGRGM.ttc,
  BoldItalicFont  = fonts/HGS_Gothic/HGRGE.ttc
]{HGS Gothic}


\begin{document}

\section{活字試験}

  \begin{itemize}
    \item 主要活字
    \begin{itemize}
      \item 漢あア
      \item \bfseries{漢あア}
    \end{itemize}
    \item ゴシック活字
    \begin{itemize}
      \item \textsf{漢あア}
      \item \textsf{\bfseries{漢あア}}
    \end{itemize}
  \end{itemize}
\end{document}

为什么会出现这个警告以及如何正确解决它?

答案1

您可以使用 手动指定脚本fontspec

这应该可以工作(尽管我没有字体可以测试)。

\setmainjfont[
  Path            = \ProjectAbsolutePath,
  UprightFont     = fonts/HGS_Mincho/HGRMB.ttc,
  BoldFont        = fonts/HGS_Mincho/HGRME.ttc,
  ItalicFont      = fonts/HGS_Mincho/HGRMB.ttc,
  BoldItalicFont  = fonts/HGS_Mincho/HGRME.ttc,
  Script          = Default
]{HGS Mincho}

更新:显然,这种字体也不支持Default脚本:(。

因此,最简单的选择是使用 来抑制警告fontspec。从手册的 §3.4 开始fontspec,通过quiet会将这些警告放入log文件中,silent并将完全抑制警告。

\PassOptionsToPackage{quiet}{fontspec}% (or try silent)
\usepackage{luatexja-fontspec}

相关内容