我想在 bm 包的粗体数学命令:\bm 中使用间距 \xspace 命令。但我收到“不完整的 \iffalse”错误,如下例所示。
\documentclass{article}
\usepackage{xspace}
\usepackage{bm}
\begin{document}
$\bm{x^2 \xspace}$
\end{document}
我在数学模式中需要 \xspace 的原因在于,我用它来定义在数学模式内外调用时都能正常工作的命令。原因是,在写文本句子时,我懒得每次谈论一个概念时都切换到数学模式,下面是一个例子(卡莱尔先生的回答让我很失望):
\usepackage{xspace}
\newcommand{\adva}{\ensuremath{\mathrm{Adv}^A}\xspace}
\begin{document}
Denote \adva the advantage of adversary A in the game.
We have: $\adva<\epsilon$.
\end{document}
答案1
我\xspace
一般会避免使用它(尽管我写了它),并且肯定会确保它永远不会出现在数学模式中。\ensuremath
在文档级命令中使用这种风格通常很糟糕,TeX 的设计明确区分了数学和文本,在数学中\sin
犯错sin
和在文本中犯错是一个功能,而不是问题。
如果你真的必须这样做
\newcommand{\xtwo}{%
\ensuremath{x^2}%
\ifmmode\else\expandafter\xspace\fi
}
但我不会。