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 コードです。これに対処するには 2 つの方法があります。次の方法でこのログ パーサーの実行全体を無効にします。

クワック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 ファイルを削除するように通知するダイアログが表示されます。実際に [OK] をクリックすると、削除するファイルを選択するための別のダイアログが表示されます。次に [削除] をクリックすると、選択したファイルがすべて削除されます。

この問題から次のように推測できます。

  • タイプセット プロセスでエラーが発生し、aux ファイルが無効になります。エラーを修正して aux ファイルを削除し、再度タイプセットする必要があります。

  • このダイアログは、エラーが発生した後に 2 回目にファイルをタイプセットするときに表示されます。

  • このダイアログは通知のみであり、実際には次のダイアログで 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;
    }
  }
}

関連情報