私のマクロが\newcommand{\k}{king\xspace}
. 次に、「...と言った\ k」の間隔。良くなるよ。しかし、\k\k の途中にスペースを入れたくない場合はどうすればよいでしょうか? 「キングキング」が欲しい。「キングキング」ではありません。
これを行う方法はありますか?
\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
、単語の間にスペースを追加し、句読点の前にスペースを追加しないことです。したがって、マクロの 2 つの使用の間にスペースを入れたくない場合は、使用しないでください\xspace
。{}
ただし、もちろん、これには最後にa を使用する必要があります。
\documentclass{article}
\newcommand{\K}{king}%
\begin{document}
At end of sentence \K.\par
In between \K\K{} you want one long word.
\end{document}
xspace のドキュメントによると、これを処理する方法は、マクロ呼び出しの直後に {} を使用することです。
\k{}\k
xspace の最近のバージョンでは、マクロの後にスペースを生成してはならない追加のマクロを指定することもできます。
\xspaceaddexceptions{\k}
これを \xspaceaddexceptions{\textsuperscript} に使用したかったのですが、私のショップには xspace v1.06 があり、それが十分に最近のものではないため、うまくいきませんでした。だから私は使用しました:
\newcommand{\unix}{\textsc{unix}\xspace}
\unix{}\textsuperscript{\textregistered}
私が使用しているフォントには太字の小さな大文字がないため、太字のセクション見出しを除いてうまくいきました。はぁ...