¿Cómo puedo agregar un nuevo comando que diferencie entre la primera palabra de una línea y cualquier otro caso?
Por ejemplo, la macro \etc
para imprimir "etcétera" si es el comienzo de la línea; de lo contrario, imprima solo "etc."
Respuesta1
Realmente no es posible hacer esto con total generalidad, ya que TeX divide un párrafo en líneas después de expandir todas las macros y escribir los caracteres en una lista horizontal.
Puede hacer esto, cuyo principal inconveniente es que el espacio antes de la palabra sin salto de línea no es elástico como otros espacios en la línea.
\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}