带有 unicode-math 的粗体斜体数学字体(xelatex)

带有 unicode-math 的粗体斜体数学字体(xelatex)

我不明白如何使用 unicode maths 获取粗斜体字体。当我加载 unicode-maths 时,粗斜体变得\boldmaths正常,并\mathbf给出正确的字体。

感谢您的帮助。

\documentclass[a4paper,11pt]{article}

\usepackage[tuenc]{fontspec}
\usepackage[a4paper]{geometry}
\usepackage[french]{babel}

\usepackage[bold-style=ISO]{unicode-math} %works without this
    \setmathfont{Latin Modern Math}
    \setmathfont[range={\mathscr,\mathbfscr}]{XITS Math}

\begin{document}

$x+y=z$

{\boldmath$x+y=z$}

$\mathbf{x+y=z}$

\end{document}

答案1

没有粗体拉丁现代数学字体。你可以伪造它,但我不相信这是你想要的。

您应该记得,unicode-math定义了\symbf应该使用哪个来获得粗体字母,而不是\mathbf使用文本粗体。

\documentclass[a4paper,11pt]{article}

\usepackage[tuenc]{fontspec}
\usepackage[a4paper]{geometry}
\usepackage[french]{babel}

\usepackage[bold-style=ISO]{unicode-math}                    
\setmathfont{Latin Modern Math}
\setmathfont[range={\mathscr,\mathbfscr}]{XITS Math}

\begin{document}

$x+y=z$

$\symbf{x}+\symbf{y}=\symbf{z}$

\end{document}

在此处输入图片描述

答案2

mathbfup除了 egreg 的答案之外,您还可以通过和mathbfit相关宏强制使用某种数学粗体样式symbf。您还可以mathbf通过选项强制使用粗体数学字体而不是文本字体mathbf=sym。参见示例,

\documentclass{article}
\usepackage[mathbf=sym]{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont{XITS Math}[range={scr,bfscr}]

\begin{document}
\def\sample{0123ABCDabcd\Delta\Gamma\Omega\alpha\beta\gamma}
\[ \sample \]            % normal math
\[ \mathbf{\sample} \]   % default bold symbol
\[ \symbf{\sample} \]    % default bold symbol
\[ \mathbfup{\sample} \] % always upper right bold
\[ \mathbfit{\sample} \] % always italic bold
\end{document}

在此处输入图片描述

相关内容