每次 LaTeX 因某种原因生成损坏的.aux
文件时,都会出现以下对话框,内容为 _在排版设置时,检测到上次运行中损坏的 .aux 文件。您应该将其删除并重新运行排版过程。您想现在显示“删除 Aux 文件...”对话框吗?
它不仅是多余的(为什么不立即用Skip
按钮显示其他对话框?),而且更重要的是它非常烦人。
我不希望出现任何对话框!能否以某种方式将其关闭,或者我必须获取源代码、删除该部分并重新编译它?
答案1
从我的评论到正确的答案。:)
一切邪恶的根源都依赖于一个名为logParser.js
inside 的钩子<USERHOME>/.TeXworks/scripts/Hooks
。如果你不确定在哪里可以找到这个路径,TeXworks 有一个快捷方式:
即Scripts ▶ Scripting TeXworks ▶ Show Scripts Folder
。然后您可以访问其中指定的文件夹Hooks
。非常简单,不是吗?:)
该文件是logParser.js
,
这是一段 JavaScript 代码。我们有两种方法可以处理它。一种是通过以下方式禁用此日志解析器的整个执行:
(Scripts ▶ Scripting TeXworks ▶ Manage Scripts
)
然后取消选中选项卡Errors, warnings, badboxes
下的项目Hook Scripts
。
或者我们可以直接编辑logParser.js
。处理辅助文件警告的函数大约在第 373 行:
LogParser.prototype.WarnAuxFiles = function()
{
for (var i = this.Results.length-1; i >= 0; i--) {
if (this.Results[i].Description.indexOf("File ended while scanning use of") > -1) {
if (TW.question(null, "", "While typesetting, a corrupt .aux " +
"file from a previous run was detected. You should remove " +
"it and rerun the typesetting process. Do you want to display" +
"the \"Remove Aux Files...\" dialog now?", 0x14000) == 0x4000)
TW.target.removeAuxFiles();
break;
}
}
}
尽管我可以return
在函数体开头块之后立即添加一个语句,但我还是倾向于对有问题的部分进行注释。:)
因此:
LogParser.prototype.WarnAuxFiles = function()
{
/*
No more! (Dr. Who, The Day Of The Doctor)
_.._
/ a\__,
\ -.___/
\ \
(\____) \
|\_( ))
_____| (_ /________
_\____(______/__
______
ooh a duck! :)
for (var i = this.Results.length-1; i >= 0; i--) {
if (this.Results[i].Description.indexOf("File ended while scanning use of") > -1) {
if (TW.question(null, "", "While typesetting, a corrupt .aux " +
"file from a previous run was detected. You should remove " +
"it and rerun the typesetting process. Do you want to display" +
"the \"Remove Aux Files...\" dialog now?", 0x14000) == 0x4000)
TW.target.removeAuxFiles();
break;
}
}
*/
}
我们就完成了。:)
答案2
我也遇到了同样的问题。
这个问题可能是排版过程中的错误造成的,我的情况是,tex文件有错误,然后我编译它,排版过程报错,我停止排版,当我再次排版时,出现对话框提示删除aux文件,其实如果你点击“确定”,又会出现另一个对话框让你选择要删除哪个文件,然后点击“删除”,所有选中的文件都将被删除。
这个问题可以推断为:
排版过程中出现错误,导致辅助文件无效。您应该更正错误并删除辅助文件,然后重新排版。
发生错误后,第二次排版文件时会出现这个对话框。
此对话框仅通知您,实际上辅助文件将在下一个对话框中被删除。
所以我的解决方案是,如果排版过程中出现错误,当我中止它时,会出现删除文件对话框,然后单击“删除”按钮以删除辅助文件。(仍然有一个对话框,因为我发现使用脚本很难删除辅助文件,而且我不知道该怎么做。)
这是我的代码。第 373 行附近的 WarnAuxFiles 函数logParser.js
已被修改。
LogParser.prototype.WarnAuxFiles = function()
{
for (var i = this.Results.length-1; i >= 0; i--) {
if(this.Results[i].Severity == Severity.Error) {
TW.target.removeAuxFiles();
break;
}
}
}