Unicode-Math Bold 数学字体不正确

Unicode-Math Bold 数学字体不正确

我想知道我做错了什么。我正在使用 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}

相关内容