如何组合unicode-math字体更改命令?

如何组合unicode-math字体更改命令?

我希望能够unicode-math在数学环境中组合使用字体更改命令。例如,我将一个符号定义为直立字体,但我想要该直立符号的粗体版本。我以为这样\symbf{\symup{V}}可行,但事实并非如此。有命令\symbfup和其他命令可以指定两种字体。我如何才能将它们组合起来?实际用例显示在下面的 MWE 中:

\documentclass{article}
\usepackage{unicode-math}
\setmathfont{TeX Gyre Pagella Math}
\newcommand*{\velocity}{\symup{V}}
\newcommand*{\vectorsym}[1]{\symbf{#1}}
\begin{document}
$\velocity \quad \vectorsym{\velocity} \quad \symbfup{V}$
\end{document}

答案1

正如 David Carlisle 在评论中所说,数学字母命令从未想过要“累积”地表现。因此,\symbf对已经受 的影响的东西没有影响\symup。但是,由于您的目标无论如何都是生产\symbf(并且\symbfup不做任何不同的事情),您可以将 定义\vectorsym为本地重新定义\symup为无操作:

\documentclass{article}
\usepackage{unicode-math}
\setmathfont{TeX Gyre Pagella Math}

\newcommand*{\velocity}{\symup{V}}

\ExplSyntaxOn
\NewDocumentCommand{\vectorsym}{m}
 {
  \group_begin:
  \cs_set_eq:NN \symup \use:n
  \symbf{#1}
  \group_end:
 }
\ExplSyntaxOff

\begin{document}
$\velocity \quad \vectorsym{\velocity} \quad \symbfup{V} \quad \vectorsym{x}$
\end{document}

在此处输入图片描述

相关内容