编写一个在数学公式和文本中都适用的宏

编写一个在数学公式和文本中都适用的宏

我是否可以编写一个根据是否存在数学公式来运行的宏?

例如,假设我有一个名为“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}

在此处输入图片描述

相关内容