TeX이 \end 명령을 만나면, main vertical list가 비어있고 \deadcycles=0 인 경우에만 작업을 종료한다. 그렇지 않은 경우에는 다음에 해당하는 것을 main vertical list에 첨가한 후 \end 토큰을 다시 읽어들인다.
\line{} \vfill \penalty-'10000000000
이것은 모든 게 전부 ship out 될 때까지 output routine을 계속 호출하는 효과를 가진다. 특히 이단조판의 마지막 칼럼이 사라지는 것을 방지해준다.
그렇다면 \bye나 \end나 하는 일이 거의 동일하다고 할 수 있습니다. 단지 \line{}이 있고 없고만 다른데, 이건 눈에 보이지 않는 빈 박스에 불과합니다. 더 큰 차이는 \bye가 outer 매크로로 정의돼 있다는 점이겠지요. 즉 \bye는 다른 매크로나 조건문 안에 쓸 수 없고 독립적으로만 써야 하는 것입니다.
The TeXbook 제23장 마지막 페이지에 다음과 같이 나와 있습니다.
그렇다면
\bye
나\end
나 하는 일이 거의 동일하다고 할 수 있습니다. 단지\line{}
이 있고 없고만 다른데, 이건 눈에 보이지 않는 빈 박스에 불과합니다. 더 큰 차이는\bye
가 outer 매크로로 정의돼 있다는 점이겠지요. 즉\bye
는 다른 매크로나 조건문 안에 쓸 수 없고 독립적으로만 써야 하는 것입니다.