我是否可以编写一个根据是否存在数学公式来运行的宏?
例如,假设我有一个名为“alg1”的算法,并且我希望该名称包含在内,\mathsf
因此通常我定义两个宏如下: 1)\def\a{\mathsf{alg1}}
和 2) \def\b{$\mathsf{alg1}$}
。一个用于当我想在数学公式中使用“alg1”名称时,另一个用于当我想在文本环境中使用该名称时。
那么有没有办法为两个应用程序编写一个宏?
答案1
使用\ensuremath
:
\documentclass[border=3.141592]{standalone}
\newcommand{\HT}{\ensuremath{\mathcal{H}} }
\begin{document}
See \HT and $\HT$
\end{document}
附录:\HT
您可能对以下通过软件包启用的 版本感兴趣xspace
:
\documentclass[border=3.141592]{standalone}
\usepackage{xspace}
\newcommand{\HT}{\ensuremath{\mathcal{H}}\xspace}
\begin{document}
See \HT and $\HT$, and when at of the sentence is \HT.
\end{document}