使用如下宏:
\def\naive{na\"{\i}ve}
我发现,我希望紧随其后的空间不见了。因此,
the \naive approach
我明白了
幼稚的做法
在输出中。我该如何恢复空间?
答案1
\naive\
使用或的问题\naive{}
:如果您碰巧忘记了结束的反斜杠/括号,您最终会在没有注意到的情况下吞噬空间。
添加到宏定义的问题\xspace
:如果宏使用,这可能会产生不一致的间距\emph
。请参阅xspace 和斜体校正了解详情。
在上面链接的帖子中,Will Robertson 建议使用“分隔”宏(例如/
末尾带有)作为替代方案。 的主要优点\naive/
是如果您忘记了结束斜杠,则会出现错误消息。
(另见这回答。)
\documentclass{article}
\newcommand{\naive}{}% To make sure that \naive isn't already defined
\def\naive/{na\"{\i}ve}
\begin{document}
the \naive/ approach
\end{document}
答案2
使用包xspace
。 它
提供一个单一命令,查看命令流中其后面的内容,并决定是否插入一个空格来替换被 TeX 命令解码器“吃掉”的空格。
对于您的情况,可以按以下方式使用:
\documentclass{article}
\usepackage{xspace}
\def\naive{na\"{\i}ve\xspace}
\begin{document}
the \naive approach
\end{document}
答案3
使用括号\naive{}
或\naive\
或xspace
。请参阅常见问题解答:https://texfaq.org/FAQ-xspace
答案4
快速回答:\naive\
方法
更好的答案:使用xspace
-package
\usepackage{xspace}
\newcommand{\better\xspace }
...
the \better approach
优点:xspace
查看下一个字符。因此,您不会在以下位置出现过时的空格:
Macro at sentence end\better.