Usar \xspace dentro de \bm (pacote bm) causa erro "incomplete \iffalse"

Usar \xspace dentro de \bm (pacote bm) causa erro "incomplete \iffalse"

Eu gostaria de usar o comando espaçamento \xspace dentro do comando para matemática em negrito: \bm do pacote bm. Mas recebo um erro "Incomplete \iffalse", como no exemplo abaixo.

\documentclass{article}
\usepackage{xspace}
\usepackage{bm}
\begin{document}
$\bm{x^2 \xspace}$
\end{document}

A razão pela qual preciso de \xspace dentro do modo matemático é que uso para definir comandos que funcionam bem quando chamados dentro e fora do modo matemático. A razão é que, ao escrever frases de texto, tenho preguiça de mudar de e para o modo matemático toda vez que falo sobre um conceito. Aqui está um exemplo (desanimado pela resposta do Sr. Carlisle):

\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}

Responder1

Eu evitaria \xspaceem geral (apesar de ter escrito) e certamente garantiria que nunca aparecesse no modo matemático. Geralmente é um estilo ruim para usar \ensuremathem comandos de nível de documento, o TeX foi projetado para ter uma distinção clara entre matemática e texto, o fato de que \sinfazer sinmatemática e um erro no texto é um recurso e não um problema.

Se você realmente precisa, você poderia fazer

\newcommand{\xtwo}{%
  \ensuremath{x^2}%
  \ifmmode\else\expandafter\xspace\fi
}

mas eu não faria isso.

informação relacionada