我想定义一个\newcommand
在文本和数学模式下产生相同字体的函数。例如,
\newcommand{\abc}[1]{???#1}
然后
\abc{varName} is blah blah blah
$ \abc{varName} = 4 $
我想变量名称在两种情况下使用相同的字体,理想情况下\mathsf
字体相同。
答案1
这实际上与使用相同\ensuremath
:只需询问是否LaTeX
处于数学模式(\ifmmode
),然后使用\mathsf
或暂时切换到数学模式并应用\mathsf
。
顺便说一下,无论如何,在和模式 \textsf
下都可以工作。math
text
\documentclass{article}
\newcommand{\abc}[1]{%
\ifmmode
\mathsf{#1}%
\else
$\mathsf{#1}$%
\fi
}
\begin{document}
\LARGE
\abc{varName} is blah blah blah
$ \abc{varName} = 4 $
\begin{equation}
\abc{Hello} = 7
\end{equation}
\end{document}
答案2
该\ensuremath
命令允许在文本模式和数学模式下使用数学模式中的内容。因此,您可以像这样编写命令。
\newcommand{\abc}[1]{\ensuremath{\mathsf{#1}}}