我想知道我做错了什么。我正在使用 LuaLaTeX 并尝试加载 kpfonts。我知道此字体的数学版本支持粗体数学。但是当我使用时,symbf
我没有得到预期的结果。下面显示了粗体与常规数学版本的比较。粗体看起来直立/常规。我不知道为什么,它看起来不太对。还是我的直觉错了?我是否错误地指定了粗体?
请注意,当我编译此代码时,我确实收到了警告Some font shapes were not available, defaults substituted
。这是否意味着粗体数字实际上缺失了,而某种类型的直立替代物被替换了?
这是代码。
\documentclass[11pt,letterpaper]{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont[Path=fonts/serif/]{KpRoman}[
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic
]
\setsansfont[Path=fonts/sans_serif/]{KpSans}[
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic
]
\setmathfont[Path=fonts/math/]{KpMath-Regular}[
Extension = .otf,
BoldFont = KpMath-Bold,
]
\begin{document}
\[
\phi = \int f(x) x dx
\]
\[
\symbf{\phi = \int f(x) x dx}
\]
\end{document}
答案1
\symbf
是直立粗体,您可以将其用作\symbfit
粗体数学斜体,但两者都使用常规字体中的 Unicode 数学字母表中的字符。
与传统乳胶一样,要访问粗体数学字体,请\boldmath
在公式前使用。粗体字体似乎不是完整的数学字体,并且缺少粗体数学字符。
我删除了这些[Path=f
选项,因为如果字体安装在通常的 texlive 位置,它们会停止示例的工作。
\documentclass[11pt,letterpaper]{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{KpRoman}[
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic
]
\setsansfont{KpSans}[
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic
]
\setmathfont{KpMath-Regular}[
Extension = .otf,
BoldFont = KpMath-Bold,
]
\begin{document}
\[
\phi = \int f(x) x\, dx
\]
\[
\symbfit{\phi} = \int \symbfit{f}(\symbfit{x}) \symbfit{x}\, \symbfit{d}\symbfit{x}
\]
\boldmath
\[
\phi = \int f(x) x\, dx
\]
\[
\symbfit{\phi} = \int \symbfit{f}(\symbfit{x}) \symbfit{x}\, \symbfit{d}\symbfit{x}
\]
\end{document}