在 TeXworks 中禁用“自动删除辅助文件”对话框

在 TeXworks 中禁用“自动删除辅助文件”对话框

每次 LaTeX 因某种原因生成损坏的.aux文件时,都会出现以下对话框,内容为 _在排版设置时,检测到上次运行中损坏的 .aux 文件。您应该将其删除并重新运行排版过程。您想现在显示“删除 Aux 文件...”对话框吗?

在此处输入图片描述

它不仅是多余的(为什么不立即用Skip按钮显示其他对话框?),而且更重要的是它非常烦人。

我不希望出现任何对话框!能否以某种方式将其关闭,或者我必须获取源代码、删除该部分并重新编译它?

答案1

从我的评论到正确的答案。:)

一切邪恶的根源都依赖于一个名为logParser.jsinside 的钩子<USERHOME>/.TeXworks/scripts/Hooks。如果你不确定在哪里可以找到这个路径,TeXworks 有一个快捷方式:

嘎嘎 1

Scripts ▶ Scripting TeXworks ▶ Show Scripts Folder。然后您可以访问其中指定的文件夹Hooks。非常简单,不是吗?:)

该文件是logParser.js

嘎嘎 2

这是一段 JavaScript 代码。我们有两种方法可以处理它。一种是通过以下方式禁用此日志解析器的整个执行:

嘎嘎 3

Scripts ▶ Scripting TeXworks ▶ Manage Scripts

然后取消选中选项卡Errors, warnings, badboxes下的项目Hook Scripts

嘎嘎 4

或者我们可以直接编辑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;
    }
  }
}

相关内容