在 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.

原因是, undefined在第二個檔案中未定義,但與串聯檔案中\aa的相同。\bb

答案2

在 plain TeX 中,格式正確的檔案將以 結尾,\bye告訴編譯器停止尋找輸入。因此,串聯只會編譯第一個文件,然後忽略其餘文件\end{document}。因此,只有串聯中的第一個檔案才會編譯,其餘檔案將被忽略。另外,第二個檔案現在將在一個位置有一個序言,如果我被看到,則會產生編譯錯誤。 (所以不行。)

沒有討論套件、字體、輸入檔案等的額外影響。

相關內容