在 source2e(具体来说是 ltfiles.dtx)下\document
,给出了以下定义:
34 \if@filesw
35 \immediate\openout\@mainaux\jobname.aux
36 \immediate\write\@mainaux{\relax}%
37 \fi
用简单的英语来说:aux 文件的第一行以 开头\relax
。
该服务的目的是什么\relax
?
答案1
LaTeX 一直都是这样做的(并且没有真正记录下为什么),但是我认为它有两个目的。
正如 egreg 在评论中提到的那样,这意味着如果操作系统不允许在那时写入文件,那么您会在文档开始时收到错误,而不是在稍后 latex 需要辅助文件的某个不可预测的地方。
通过写入某些内容,您可以确保文件永远不会为空,即使文档中没有交叉引用。这对于调试很有用(例如,这意味着您可以根据辅助文件中没有内容来检测“首次运行”)。