我正在尝试为 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}