줄의 첫 번째 단어와 다른 대소문자를 구별하는 새 명령을 어떻게 추가할 수 있나요?
\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}