检查行首的宏

检查行首的宏

如何添加一个新命令来区分一行中的第一个单词和其他任何情况?

例如,\etc如果这是行的开头,则宏用于打印“etcetera”,否则,只打印“etc”。

答案1

由于 TeX 在展开所有宏并将字符排版到水平列表后会将段落分成几行,因此完全普遍地做到这一点并不现实。

你可以这样做,但主要的缺点是在没有换行符的情况下单词前面的空格不像行上的其他空格那样具有可拉伸性。

在此处输入图片描述

\documentclass{article}

\newcommand\etc{\ifhmode\unskip\fi\discretionary{}{etcetera}{\hbox{ etc.}}}
\begin{document}

word \etc\ wordword \etc\ wordword \etc\ word
word \etc\ wordword \etc\ wordword \etc\ word
word \etc\ wordword \etc\ wordword \etc\ word
word \etc\ wordword \etc\ wordword \etc\ word
word \etc\ wordword \etc\ wordword \etc\ word


\end{document}

相关内容