Como posso adicionar um novo comando que diferencie a primeira palavra de uma linha de qualquer outro caso?
Por exemplo, a macro \etc
para imprimir "etc." se for o início da linha, caso contrário, imprima apenas "etc."
Responder1
Não é realmente possível fazer isso de maneira geral, pois o TeX divide um parágrafo em linhas depois que todas as macros são expandidas e os caracteres digitados em uma lista horizontal.
Você pode fazer isso, cuja principal desvantagem é que o espaço antes da palavra, no caso de não haver quebra de linha, não é elástico como outros espaços na linha.
\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}