\documentclass{article}
\newcommand{\nptime}{\ensuremath{\sf NP}}
\newcommand{\bnptime}{\ensuremath{\sf\bf NP}}
\begin{document}
\nptime\\
\bnptime
\end{document}
我正在尝试制作一个宏来将“NP”排版为粗体无衬线字体,但正如我的 MWE 所演示的那样,它不起作用。BF 似乎强制使用衬线字体。
或者,我很乐意找到 的反义词\ensuremath
,但我似乎找不到。我试过了,但\text{}
无济于事。
以下类似的 MWE 做同样的事情。
\documentclass{article}
\newcommand{\nptime}{{\sf NP}}
\newcommand{\bnptime}{{\sf\bf NP}}
\begin{document}
\nptime\\
\bnptime
\end{document}
答案1
没有必要\ensuremath
: 只需使用
\newcommand{\nptime}{\textsf{NP}}
\newcommand{\bnptime}{\textsf{\textbf{NP}}}
因此\nptime
和可以在文本和数学模式下工作,如果使用\bnptime
该包,则在下标或上标中使用时甚至可以缩放。amsmath
您发现了为什么\sf
,\bf
并且所有两个字母的字体更改命令都已弃用(并且它们已经弃用了 10 多年):组合\sf\bf
仅仅相当于\bf
,就像\sf\it
会产生普通斜体而不是无衬线,并且\it\sf
会产生直立无衬线。