xspace的间距问题

时间:2011-02-23 17:38:17

标签: latex spacing xspace

假设我的宏是\newcommand{\k}{king\xspace}。然后是间距 “...说\ k。”会没事的。但如果我不想要间距,我该怎么办? 中间的\ k \ k。?我想要“金钱”。不是“国王。”

有办法做到这一点吗?

3 个答案:

答案 0 :(得分:3)

\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}

答案 1 :(得分:3)

xspace文档说明在宏调用之后立即使用{}的方法:

 \k{}\k

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

 \xspaceaddexceptions{\k}

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

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

除了粗体部分标题外,其他工作正常,因为我使用的字体中没有粗体小字幕。叹息...

答案 2 :(得分:2)

\unskip删除之前插入的所有内容(包含空格),因此在您想删除它时使用\K\unskip\K进行奇怪的处理也可以了:

enter image description here

\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}