\xspace 和连字符

\xspace 和连字符

我正在考虑在我的文档中使用 xspace 来表示一些常见的标准术语,例如:

\newcommand{\ring}{my secret ring\xspace}

我现在想知道,当我这样做时,连字符是否正确?

\ring{}s

笔记

问了这个问题,我意识到了https://tex.stackexchange.com/a/86620/24158而且我可能根本不应该使用 xspace 而只使用正常定义,在这种情况下我希望连字符总是正确的。

我可能也应该真正定义更多术语,而不是巧妙地添加它们。但德语有很多后缀,所以这也不好笑。

不使用宏是一种选择。我正在尝试探索可行的选择。

答案1

这是连字不受影响的证明\xspace\hspace{0pt}允许对第一个单词进行连字,0pt 的宽度迫使 LaTeX 尽可能地进行连字。

\documentclass{article}
\usepackage{xspace}
\newcommand{\super}{supercalifragilistic\xspace}
\newcommand{\superB}{supercalifragilisti\xspace}
\begin{document}
\parbox{0pt}{\hspace{0pt}
\super{}expialidocious
\superB{}cexpialidocious}
\end{document}

在此处输入图片描述

然而,我看不出\xspace在这种情况下有什么帮助;你需要如果后面有后缀,则添加一个空组,这种情况似乎很常见。如果没有\xspace\super expialidocious或 ,\super{}expialidocious结果是一样的。而对于没有后缀的情况,{}在末尾添加似乎没什么大不了的。

相关内容