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