Latex xspace的间距问题

Latex xspace的间距问题,latex,spacing,xspace,Latex,Spacing,Xspace,假设我的宏是\newcommand{\k}{king\xspace}。然后是间距 “…说”\k“会好的。但是,如果我不想在空间中有间隔,我该怎么办呢 中间的\k\k。?我要的是“国王”,不是“国王” 有没有办法做到这一点?整个\xspace的要点是在单词之间添加空格,而不是在标点符号之前添加空格。因此,如果您不想在宏的两次使用之间使用空格,请不要使用\xspace。但是,这当然需要您在结尾使用{}: \documentclass{article} \newcommand{\K}{king}%

假设我的宏是
\newcommand{\k}{king\xspace}
。然后是间距 “…说”\k“会好的。但是,如果我不想在空间中有间隔,我该怎么办呢 中间的\k\k。?我要的是“国王”,不是“国王”


有没有办法做到这一点?

整个
\xspace
的要点是在单词之间添加空格,而不是在标点符号之前添加空格。因此,如果您不想在宏的两次使用之间使用空格,请不要使用
\xspace
。但是,这当然需要您在结尾使用
{}

\documentclass{article}
\newcommand{\K}{king}%

\begin{document}
At end of sentence \K.\par
In between \K\K{} you want one long word.
\end{document}

\unskip
删除先前插入的任何跳过(包括空格),因此在需要删除跳过的奇数情况下,使用
\K\unskip\K
也就足够了:

\documentclass{article}
\usepackage{xspace}% http://ctan.org/pkg/xspace
\newcommand{\K}{king\xspace}
\begin{document}
Here is the \K. Here is the \K\K. Here is the \K\unskip\K.
\end{document}


xspace文档指出,处理此问题的方法是在宏调用后立即使用{}:

 \k{}\k
xspace的最新版本还允许您指定不应在宏之后生成空间的其他宏:

 \xspaceaddexceptions{\k}
我想将它用于\xspaceaddexceptions{\textsuperscript},但它对我不起作用,因为我的商店有xspace v1.06,这还不够新。所以我用了:

 \newcommand{\unix}{\textsc{unix}\xspace}
 \unix{}\textsuperscript{\textregistered}

除了粗体的部分标题外,它工作得很好,因为我使用的字体中没有粗体的小大写字母。唉…

我想这应该放在tex.SE。。。这似乎与LaTeX的编程方面无关。