![粗体无衬线字体不起作用吗?](https://linux22.com/image/263057/%E7%B2%97%E4%BD%93%E6%97%A0%E8%A1%AC%E7%BA%BF%E5%AD%97%E4%BD%93%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%E5%90%97%EF%BC%9F.png)
\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
会产生直立无衬线。