2011-02-23 179 views
4

假設我的宏是\newcommand{\k}{king\xspace}。然後在 「...說\ k」的間距。會沒事的。但是,如果我想在\ k \ k中間的 中沒有空格,我該怎麼辦?我想要「經理」。不是「國王」。xspace的間距問題

有沒有辦法做到這一點?

+1

我認爲這應該繼續tex.SE ...它似乎不是關於LaTeX的編程方面。 – 2011-02-23 17:45:22

回答

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

\unskip刪除插入任何先前skip(包括空格),所以使用\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} 
3

的xspace文檔說的方式來處理,這是與{}宏調用後立即:

\k{}\k 

最近xspace的版本還允許您指定的宏之後應該不會產生空間額外的宏:

\xspaceaddexceptions{\k} 

我想用這個\ xspaceaddexceptions {\ textsuperscript},但它沒因爲我的商店有xspace v1.06,所以不適合我,這還不夠。所以我用:

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

除了在粗體的部分標題,其中工作正常,因爲沒有大膽的小字體,我正在使用的字體。嘆息...