转自:https://www.douban.com/note/419828344/
目录:
一、问题描述
二、测试情况(可以跳过,直接看建议)
三、建议
四、参考资料
正文:
问题描述:
错漏某个符号(比如“$”)并在编译中被报错之后,过去经常采取的操作是按Console窗口里面的红色叉叉(Terminate Application),然后修改错误,然后重新编译,但是改正后的代码仍然编译报错,每次编译都是如此。编译报告说明:
Runaway argument?
{contentsline {subsection}{
umber1
! File ended while scanning use of @writefile.
par
1.56 egin{document}
?
奇怪的是,把全部代码复制到新窗口,保存为新的.tex文件并编译之后又完全没有问题。
后来又发现,只要把编译后在同一文件夹内生的.aux文件删除,就可以正确编译通过了。
但是如果每次都要这样的话,也太麻烦了。
上网查了查,并测试了下。过程如下。
测试情况:
说明下简称:
普通的漏掉“(”这样的错误,叫作“错误Error)”;
出现“Runaway argument?…………egin{document}?”这样报错的错误,叫作“错误ErrorBoss”;
点击Console窗口里面的红色叉叉(Terminate Application)的操作叫作“按红叉”;
直接在Console窗口按回车,叫作“回车”;
在Console窗口先输入字母“x”再按回车,叫作“x回车”;
在Console窗口先输入字母“q”再按回车,叫作“q回车”。
下面记录下出现两种错误时,不同操作产生的效果:
出现错误Error(时: 按红叉:中断编译过程过程,不给出编译报告。然后修改错误之后重新编译时,(根据在错误文中位置不同而有可能)出现错误ErrorBoss。 回车:仅跳过这步,继续编译完后面的,结尾Errors=1,Warnings与Bad Boxes正常显示。修改错误后,重新编译,可以正常编译。次推荐。 x回车:跳过余下全部编译过程,直接出编译报告,结尾Errors=1,Warnings与Bad Boxes只显示到该位置的数量。修改错误后,重新编译,可以正常编译。最推荐。 q回车:跳过余下全部编译过程,直接出编译报告,entering atchmode,未深究,但结尾Errors数量随着“)”位置的不同不可预测,Warnings与Bad Boxes正常显示。修改错误后,重新编译,可以正常编译。
以上步骤只有“按红叉”会导致错误ErrorBoss。
出现错误ErrorBoss时:
按红叉:中断编译过程过程,不给出编译报告。重新编译仍旧报错。
回车:仅跳过这步,继续编译完后面的,结尾Errors=1,Warnings与Bad Boxes正常显示(至此可以生成pdf)。重新点击编译,可以正常编译。次推荐。
x回车:跳过余下全部编译过程,直接出编译报告,结尾Errors=1,Warnings与Bad Boxes只显示到该位置的数量。重新编译仍旧报错。
q回车:跳过余下全部编译过程,直接出编译报告,结尾Errors=1,Warnings与Bad Boxes正常显示。重新编译,可以正常编译。最推荐。
建议:
最建议的做法是:
1.出现错误Error$时,不要按红叉,在Console窗口先输入字母“x”再按回车,然后再修改错误重新编译。或者直接按回车,但要多编译一些内容。看哪一个省力。反正不要按红叉,万一中招了呢。
2.如果不幸中招,出现错误ErrorBoss,正确做法是在Console窗口先输入字母“q”再按回车。或者直接按回车,但要多编译一些内容。然后确认代码正确后,重新编译。
【参考资料】
1.http://tex.stackexchange.com/questions/66015/errors-in-tables-then-runaway-argument-at-begindocument
里面Ulrike Fischer和tohecz的回答简洁而全面。
2.http://miktex.10937.n7.nabble.com/pdfLatex-won-t-compile-until-I-delete-archive-aux-td7311.html
PS关于.aux等附属文件有什么用处,以及如何方便删除,则暂时不管它,待参考:
3.http://tex.stackexchange.com/questions/11123/prevent-pdflatex-from-writing-a-bunch-of-files
4.http://tex.stackexchange.com/questions/24785/deleting-external-auxiliary-files
PPS:能用就好,暂时不究原因...