我希望能够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}