tex에서 컴파일되는 두 텍스트 파일을 연결하면 항상 tex에서 컴파일됩니까?

tex에서 컴파일되는 두 텍스트 파일을 연결하면 항상 tex에서 컴파일됩니까?

즉, tex로 컴파일되는 모든 텍스트 파일 집합이 연결 시 모노이드를 형성합니까?

나는 최근에 일반 텍스트를 조금 다루었고 대수적 거미 감각이 즉시 따끔거렸습니다. 나는 쉽게 답을 구글링할 것이라고 생각했지만 지금까지 아무것도 찾지 못했습니다.

답변1

첫째, 일반 tex 파일은 로 끝나고 \bye(라텍스 파일은 로 끝나며 \end{document}) 그 이후의 모든 내용은 무시됩니다. 따라서 두 번째 파일은 연결 후 무시되므로 귀하의 진술은 매우 정확합니다.

\bye연결에 포함된 "메타 명령"으로 간주하면 귀하의 설명이 잘못된 것입니다.

파일을 고려하십시오

\def\aa{0}
\aa
\bye

그리고

\def\bb{0}
\bb
\ifx\aa\bb\cc\fi
\bye

각각은 컴파일되지만 연결은 그렇지 않습니다.

\def\aa{0}
\aa
\def\bb{0}
\bb
\ifx\aa\bb\cc\fi
\bye

생산하다

! Undefined control sequence.
l.5 \ifx\aa\bb\cc
                 \fi
? 
! Emergency stop.

그 이유는 두 번째 파일에서는 정의되지 않음 이 정의되지 않았지만 연결된 파일 \aa과 동일하기 때문입니다 .\bb

답변2

일반 TeX에서는 올바른 형식의 파일이 끝나서 \bye컴파일러에게 입력 검색을 중지하라고 지시합니다. 따라서 연결은 첫 번째 파일만 컴파일하고 나머지는 무시됩니다. (그렇지 않습니다.) LaTeX에서는 컴파일 가능한 파일이 다시 끝나서 \end{document}컴파일러에게 완료되었음을 알립니다. 따라서 연결의 첫 번째 파일만 컴파일되고 나머지는 무시됩니다. 게다가 두 번째 파일에는 이제 내가 본 경우 컴파일 오류가 발생하는 위치에 서문이 포함됩니다. (그래서 아니야.)

패키지, 글꼴, 입력 파일 등의 추가 영향은 논의되지 않았습니다.

관련 정보