El uso de \xspace dentro de \bm (paquete bm) provoca el error "incompleto \iffalse"

El uso de \xspace dentro de \bm (paquete bm) provoca el error "incompleto \iffalse"

Me gustaría usar el comando espaciado \xspace dentro del comando para matemáticas en negrita: \bm del paquete bm. Pero obtengo un error "Incompleto \iffalse", como en el siguiente ejemplo.

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

La razón por la que necesito \xspace dentro del modo matemático es que lo uso para definir comandos que funcionan bien tanto cuando se llaman dentro como fuera del modo matemático. La razón es que cuando escribo oraciones de texto, me da pereza cambiar entre y desde el modo matemático cada vez que hablo sobre un concepto, aquí hay un ejemplo (desanimado por la respuesta del 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}

Respuesta1

Lo evitaría \xspaceen general (a pesar de que lo escribí yo) y ciertamente me aseguraría de que nunca aparezca en modo matemático. Generalmente es un mal estilo usarlo \ensuremathen comandos a nivel de documento, TeX está diseñado para tener una distinción clara entre matemáticas y texto, el hecho de que en \sinmatemáticas siny un error en texto es una característica, no un problema.

Si realmente es necesario, podrías hacerlo.

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

pero no lo haría.

información relacionada