使用 Lualatex 结合 KOMA 脚本和自定义策略 (Heofler Text),我必须手动指定与 对应的文件BoldItalicFont
。但是,这在章节标题中没有被考虑(我默认将其设为粗体)。
\documentclass{scrarticle}
\usepackage{unicode-math}
\addtokomafont{disposition}{\fontspec{Hoefler Text}}
\setmainfont{Hoefler Text}[BoldItalicFont={Hoefler Text Black Italic}]
\begin{document}
\section{The word \textit{cat} should be in italics}
The word \textit{\textbf{cat}} is correctly in bold italic.
\end{document}
答案1
如果\fontspec{Hoefler Text}
您没有使用稍后定义的主字体:
\setmainfont{Hoefler Text}[BoldItalicFont={Hoefler Text Black Italic}]
但只是Hoefler Text
.fontspec
无法识别这是相同的字体,而您可能的意思是也应该使用相同的粗体斜体字体。比较,例如,
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Hoefler Text}[BoldItalicFont={Hoefler Text Black Italic}]
\begin{document}
The word \textit{\textbf{cat}} is correctly in bold italic.
\fontspec{Hoefler Text}
The word \textit{\textbf{cat}} is correctly not in bold italic.
\end{document}
因此您需要再次添加可选参数并使用
\addtokomafont{disposition}{\fontspec{Hoefler Text}[BoldItalicFont={Hoefler Text Black Italic}]}
但还有更简单的方法。如果您只想使用粗体主字体,您可以按照 KOMA-Script 手册中所示将元素设置disposition
为。\bfseries
\documentclass{scrartcl}
\usepackage{unicode-math}
\setkomafont{disposition}{\bfseries}
\setmainfont{Hoefler Text}[BoldItalicFont={Hoefler Text Black Italic}]
\begin{document}
\section{The word \textit{cat} is in italics}
The word \textit{\textbf{cat}} is correctly in bold italic.
\end{document}
但也许你甚至不希望 KOMA-Script 对字体元素使用任何无衬线默认值。在这种情况下,你可以使用选项sfdefaults=false
:
\documentclass[sfdefaults=false]{scrartcl}[2023/04/17]
\usepackage{unicode-math}
\setmainfont{Hoefler Text}[BoldItalicFont={Hoefler Text Black Italic}]
\begin{document}
\section{The word \textit{cat} is in italics}
The word \textit{\textbf{cat}} is correctly in bold italic.
\end{document}
结果是一样的。