![Posso injetar \xspace em todos os comandos do pacote de complexidade?](https://rvso.com/image/328447/Posso%20injetar%20%5Cxspace%20em%20todos%20os%20comandos%20do%20pacote%20de%20complexidade%3F.png)
O complexity
pacote é muito útil para um Cientista da Computação. Recentemente, descobri o xspace
pacote, que fornece a \xspace
macro que ajuda a definir macros que não precisam de \
escape para evitar a globulação de um espaço em branco subsequente:
\newcommand{\myname}{Nicola\xspace}
...
\myname is walking on the street % No need to write \myname\ or \myname{}
Agora, eu uso ummuitode comandos do pacote complexidade, que define dezenas de comandos que são comumente usados dentro de texto para que a necessidade de escape seja muito frequente. Eu gostaria que eles fossem usados \xspace
por padrão, mas redefinir, digamos, \ComplexityFont
não funciona, porque aparentemente \xspace
deve ser colocado exatamente no final da macro que está sendo invocada (e não uma macro expandida a partir dela). O pacote define todas as suas macros com \newcommand
s simples, então não acho que haja uma maneira de conectá-lo.
É possível automatizar essa redefinição de alguma forma ou devo sugerir esse recurso diretamente ao autor do pacote?
Responder1
Como essencialmente todos os comandos são definidos em termos de \ComplexityFont
, é 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}
Também robustifiquei o comando principal, para que você não precise \protect
na frente das complexity
macros ao mover argumentos, como os de \section
e \caption
.
No entanto, meu conselho é seguir o que o autor diz no manual:
Portanto, é melhor sempre usar
complexity
comandos dentro do modo matemático.
LerDesvantagens do xspacepor razões pelas quais não usar \xspace
.
\documentclass{article}
\usepackage[small]{complexity}
\usepackage{etoolbox}
\robustify\ComplexityFont
\begin{document}
\section{An $\NP$ problem}
An $\NP$ problem
\end{document}