是否可以定义一个采用可选星号并在下标中工作的命令?

是否可以定义一个采用可选星号并在下标中工作的命令?

笔记:这或多或少是我博客的转帖。我希望这是可以接受的,尤其是这是一个真正的问题!

我目前正在写一篇(较长的)数学论文。除其他内容外,我还写了关于豪斯多夫度量的内容,我将其表示为$d_H$。由于这种符号经常出现,我决定为其编写一个命令:

\newcommand{\dH}{{d_H}}

这里之所以有额外的括号,是因为有时我想讨论一个关于豪斯多夫度量的球,用 表示$B_{d_H}$– 为此,我想写成B_\dH。如果没有额外的括号,这将行不通(原因很明显)。

到目前为止,一切都很好。但还有另一个问题:我想要一个类似于豪斯多夫度量的概念(称之为豪斯多夫拟度量),我将其表示为$d_H^*$。按照我的定义,\dH^*行不通(我希望星号位于下标上方)。所以我想聪明一点,使用一个可选的星号;这样,我可以写\dH\dH*。我这样做了:

\newcommand{\dH}{\@ifstar{d_H^*}{d_H}}

但是我现在失去了书写能力B_\dH!当然,在周围添加括号也\@ifstar无济于事:这样它就永远不会“看到”星号了。(注意:我知道这xparse会使使用可选星号定义命令变得更容易,但我认为这对我的问题没有帮助。)

就我个人而言,我看不出有什么办法可以摆脱这种困境。这不是什么大问题,我可以写B_{\dH}(反正这是更简洁的 LaTeX 语法),但我很好奇是否有办法既能吃下这块蛋糕,又能拥有它。

答案1

延迟闭团: 之后_,可以使用\bgroup

\documentclass{article}
\makeatletter
\newcommand\dH{\bgroup d_H\@ifstar{^*\egroup}{\egroup}}
\makeatother

\begin{document}
$B_\dH$ and $B_\dH*$
\end{document}

在此处输入图片描述

但要避免这样做。

相关内容