Macro que busca el comienzo de una línea.

Macro que busca el comienzo de una línea.

¿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 \etcpara 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.

ingrese la descripción de la imagen aquí

\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}

información relacionada