Kann ich \xspace in alle Befehle aus dem Komplexitätspaket einfügen?

Kann ich \xspace in alle Befehle aus dem Komplexitätspaket einfügen?

Das complexityPaket ist für Informatiker sehr nützlich. Ich habe kürzlich das xspacePaket entdeckt, das das Makro bereitstellt \xspace, das beim Definieren von Makros hilft, die kein \Escape benötigen, um das Globbing eines nachfolgenden Leerzeichens zu vermeiden:

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

Jetzt benutze ich einvielvon Befehlen aus dem Complexity-Paket, das Dutzende von Befehlen definiert, die häufig in Texten verwendet werden, sodass die Notwendigkeit des Escapens sehr häufig besteht. Ich würde sie gerne \xspacestandardmäßig verwenden, aber eine Neudefinition \ComplexityFontfunktioniert beispielsweise nicht, da sie anscheinend \xspacegenau am Ende des aufgerufenen Makros stehen müssen (nicht an einem daraus erweiterten Makro). Das Paket definiert alle seine Makros mit einfachen \newcommands, daher glaube ich nicht, dass es eine Möglichkeit gibt, sich daran zu hängen.

Kann diese Neudefinition irgendwie automatisiert werden oder sollte ich diese Funktion dem Paketautor direkt vorschlagen?

Antwort1

Da im Wesentlichen alle Befehle in Bezug auf definiert sind \ComplexityFont, ist es ganz einfach:

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

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


\begin{document}

\section{An \NP problem}

An \NP problem

\end{document}

Ich habe außerdem den Hauptbefehl robuster gemacht, sodass Sie ihn beim Verschieben von Argumenten, wie denen von und , nicht \protectvor den Makros benötigen .complexity\section\caption

Ich rate jedoch dazu, die Anweisungen des Autors im Handbuch zu befolgen:

Daher ist es am besten, complexityBefehle immer im Mathematikmodus zu verwenden.

LesenNachteile von xspaceaus Gründen, warum nicht verwendet wird \xspace.

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

\robustify\ComplexityFont    

\begin{document}

\section{An $\NP$ problem}

An $\NP$ problem

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen