如何在 Lualatex 中将粗体应用于 CJK 语言?

如何在 Lualatex 中将粗体应用于 CJK 语言?

我正在尝试为 CJK 语言添加粗体,但未应用任何格式

我支持CJK语言的实现如下:

\documentclass[a4paper,16pt]{article}
\usepackage{libertine}

\newcommand{\cvspace}{\vskip 1.2em}\directlua{
\directlua {
  luaotfload.add_multiscript("cjk",
      {
        Hang = "Noto Serif CJK KR:mode=harf;script=hang;",
        Hani = "Noto Serif CJK TC:mode=harf;script=hani;",
        Kana = "Noto Serif CJK JP:mode=harf;script=kana;",
        Hira = "Noto Serif CJK JP:mode=harf;script=hira;",
      }
    )
  }
}
\setmainfont[RawFeature={multiscript=cjk}]{Linux Libertine O}



\begin{document}

\textbf{Japanese: 読サ統転ン務6危キリイ日記属して帯} \\

\bf{Chinese: 关于数学部分关于数学部分关于数} \\

Korean: 헌법재판소에서법률의위헌결정,헌법재판소 \\

\end{document}

\textbf{}如果我使用或将粗体应用于 CJK 语言\bf{},则会显示文本但不显示任何粗体,因此没有进行任何格式更改。 在此处输入图片描述

我如何通过此实现将粗体应用于 CJK 语言?

答案1

由于该multiscript功能运行在相当低的级别,因此它不会自动对粗体设置做出反应。您可以通过为粗体字体添加单独的多脚本规范来手动执行此操作。对于由字体名称指定的任何字体(例如“Noto Serif CJK KR”),您可以通过附加“/B”来选择相应的粗体字体。所以你得到

\documentclass[a4paper,16pt]{article}
\usepackage{libertine}

\newcommand{\cvspace}{\vskip 1.2em}
\directlua {
  luaotfload.add_multiscript("cjk", {
    Hang = "Noto Serif CJK KR:mode=harf;script=hang;",
    Hani = "Noto Serif CJK TC:mode=harf;script=hani;",
    Kana = "Noto Serif CJK JP:mode=harf;script=kana;",
    Hira = "Noto Serif CJK JP:mode=harf;script=hira;",
  })
  luaotfload.add_multiscript("cjk_bold", {
    Hang = "Noto Serif CJK KR/B:mode=harf;script=hang;",
    Hani = "Noto Serif CJK TC/B:mode=harf;script=hani;",
    Kana = "Noto Serif CJK JP/B:mode=harf;script=kana;",
    Hira = "Noto Serif CJK JP/B:mode=harf;script=hira;",
  })
}
\setmainfont[RawFeature={multiscript=cjk},BoldFeatures={RawFeature={multiscript=cjk_bold}}]{Linux Libertine O}



\begin{document}

\textbf{Japanese: 読サ統転ン務6危キリイ日記属して帯} \\

{\bfseries Chinese: 关于数学部分关于数学部分关于数} \\

Korean: 헌법재판소에서법률의위헌결정,헌법재판소 \\

\end{document}

在此处输入图片描述

相关内容