停用 TeXworks 中的「自動刪除 aux 檔案」對話框

停用 TeXworks 中的「自動刪除 aux 檔案」對話框

每次 LaTeX 由於某種原因產生損壞的.aux檔案時,都會出現以下對話框,顯示 _Whil tupesetting,偵測到上次運行中損壞的 .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文件,實際上如果單擊“確定” ,將出現另一個對話框,選擇要刪除的文件,然後按一下“刪除”,所有選定的文件將被刪除。

這個問題可以推論:

  • 您的排版過程中發生錯誤,導致您的 aux 檔案無效。您應該更正錯誤並刪除 aux 文件,然後重新排版。

  • 當您在發生錯誤後第二次排版該檔案時,會出現此對話方塊。

  • 該對話框只是通知您,實際上 aux 檔案將被下一個對話方塊刪除。

所以我的解決方案是,如果在排版過程中發生錯誤,當我中止它時,會出現刪除檔案對話框,然後點擊「刪除」按鈕來刪除輔助檔案。 (仍然有一個對話框,因為我發現很難使用腳本刪除 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;
    }
  }
}

相關內容