行の最初の単語とその他のケースを区別する新しいコマンドを追加するにはどうすればよいですか?
たとえば、\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}