![복잡성 패키지의 모든 명령에 \xspace를 삽입할 수 있나요?](https://rvso.com/image/328447/%EB%B3%B5%EC%9E%A1%EC%84%B1%20%ED%8C%A8%ED%82%A4%EC%A7%80%EC%9D%98%20%EB%AA%A8%EB%93%A0%20%EB%AA%85%EB%A0%B9%EC%97%90%20%5Cxspace%EB%A5%BC%20%EC%82%BD%EC%9E%85%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
이 complexity
패키지는 컴퓨터 과학자에게 매우 유용한 패키지입니다. 최근에 나는 후속 공백을 방지하기 위해 이스케이프가 필요하지 않은 매크로를 정의하는 데 도움이 되는 매크로를 xspace
제공하는 패키지를 발견했습니다 .\xspace
\
\newcommand{\myname}{Nicola\xspace}
...
\myname is walking on the street % No need to write \myname\ or \myname{}
이제 나는많은텍스트 내에서 일반적으로 사용되므로 이스케이프가 매우 빈번하게 발생하는 수십 개의 명령을 정의하는 복잡도 패키지의 명령입니다. 기본적으로 사용하고 싶지만 \xspace
재정의는 \ComplexityFont
작동하지 않습니다. 왜냐하면 \xspace
호출되는 매크로의 끝 부분에 정확히 넣어야 하기 때문입니다(여기서 확장된 매크로가 아님). 패키지는 간단한 \newcommand
s로 모든 매크로를 정의하므로 여기에 연결할 방법이 없다고 생각합니다.
이 재정의를 어떤 방식으로든 자동화할 수 있습니까? 아니면 이 기능을 패키지 작성자에게 직접 제안해야 합니까?
답변1
기본적으로 모든 명령은 의 관점에서 정의되므로 \ComplexityFont
매우 쉽습니다.
\documentclass{article}
\usepackage[small]{complexity}
\usepackage{etoolbox,xspace}
\robustify\ComplexityFont
\apptocmd\ComplexityFont{\xspace}{}{}
\begin{document}
\section{An \NP problem}
An \NP problem
\end{document}
또한 기본 명령을 강화하여 및 와 같은 인수를 이동할 때 매크로 \protect
앞에 올 필요가 없습니다 .complexity
\section
\caption
그러나 내 조언은 저자가 매뉴얼에서 말하는 내용을 따르는 것입니다.
complexity
따라서 항상 수학 모드 내에서 명령을 사용하는 것이 가장 좋습니다 .
읽다xspace의 단점.\xspace
\documentclass{article}
\usepackage[small]{complexity}
\usepackage{etoolbox}
\robustify\ComplexityFont
\begin{document}
\section{An $\NP$ problem}
An $\NP$ problem
\end{document}