Macro que verifica o início de uma linha

Macro que verifica o início de uma linha

Como posso adicionar um novo comando que diferencie a primeira palavra de uma linha de qualquer outro caso?

Por exemplo, a macro \etcpara 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.

insira a descrição da imagem aqui

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

informação relacionada