¿Puedo inyectar \xspace en todos los comandos del paquete de complejidad?

¿Puedo inyectar \xspace en todos los comandos del paquete de complejidad?

El complexitypaquete es muy útil para un informático. Recientemente, descubrí el xspacepaquete, que proporciona la \xspacemacro que ayuda a definir macros que no necesitan el \escape para evitar que aparezca un espacio en blanco posterior:

\newcommand{\myname}{Nicola\xspace}
...
\myname is walking on the street % No need to write \myname\ or \myname{}

Ahora uso unlotede comandos del paquete complexity, que define decenas de comandos que se usan comúnmente dentro del texto por lo que la necesidad de escapar es muy frecuente. Me gustaría que se usen \xspacede forma predeterminada, pero redefinir, digamos, \ComplexityFontno funciona, porque aparentemente \xspacedebe colocarse exactamente al final de la macro que se invoca (no una macro expandida a partir de ella). El paquete define todas sus macros con \newcommands simples, por lo que no creo que haya una manera de conectarse a él.

¿Es posible automatizar esta redefinición de alguna manera, o debería sugerir esta característica directamente al autor del paquete?

Respuesta1

Dado que esencialmente todos los comandos se definen en términos de \ComplexityFont, es bastante fácil:

\documentclass{article}
\usepackage[small]{complexity}
\usepackage{etoolbox,xspace}

\robustify\ComplexityFont
\apptocmd\ComplexityFont{\xspace}{}{}


\begin{document}

\section{An \NP problem}

An \NP problem

\end{document}

También robusticé el comando principal, por lo que no es necesario \protectestar delante de las complexitymacros cuando se mueven argumentos, como los de \sectiony \caption.

Sin embargo, mi consejo es seguir lo que dice el autor en el manual:

Por lo tanto, es mejor usar siempre complexitycomandos dentro del modo matemático.

LeerDesventajas de xspacepor razones por las que no se usa \xspace.

\documentclass{article}
\usepackage[small]{complexity}
\usepackage{etoolbox}

\robustify\ComplexityFont    

\begin{document}

\section{An $\NP$ problem}

An $\NP$ problem

\end{document}

ingrese la descripción de la imagen aquí

información relacionada