
Jedes Mal, wenn LaTeX aus irgendeinem Grund eine beschädigte Datei generiert .aux
, wird der folgende Dialog angezeigt: _Beim Setzen von tupe wurde eine beschädigte .aux-Datei aus einem vorherigen Durchlauf erkannt. Sie sollten sie entfernen und den Satzvorgang erneut ausführen. Möchten Sie jetzt den Dialog „Aux-Dateien entfernen …“ anzeigen?
Dies ist nicht nur überflüssig (warum wird der andere Dialog nicht sofort mit der Schaltfläche angezeigt Skip
?), sondern, was noch wichtiger ist, es ist äußerst ärgerlich.
Ich möchte nicht, dass irgendwelche Dialoge erscheinen!Kann man das irgendwie abschalten oder muss ich mir den Quellcode besorgen, diesen Teil löschen und neu kompilieren?
Antwort1
Von meinem Kommentar zu einer richtigen Antwort.:)
Die Wurzel allen Übels beruht auf einem Hook namens logParser.js
inside <USERHOME>/.TeXworks/scripts/Hooks
. Wenn Sie nicht sicher sind, wo Sie diesen Pfad finden, bietet TeXworks eine Abkürzung dafür:
Nämlich Scripts ▶ Scripting TeXworks ▶ Show Scripts Folder
. Dann können Sie auf einen Hooks
dort genannten Ordner zugreifen. Ziemlich einfach, nicht wahr?:)
Die schuld ist die Datei logParser.js
,
Dabei handelt es sich um einen JavaScript-Code. Wir können damit auf zwei Arten umgehen. Entweder indem wir die gesamte Ausführung dieses Protokollparsers deaktivieren, und zwar über:
( Scripts ▶ Scripting TeXworks ▶ Manage Scripts
)
Und deaktivieren Sie anschließend das Element Errors, warnings, badboxes
unter der Hook Scripts
Registerkarte.
Oder wir können direkt bearbeiten logParser.js
. Die Funktion, die Warnungen vor Hilfsdateien behandelt, befindet sich in Zeile 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
Obwohl ich direkt nach dem Eröffnungsblock des Funktionskörpers eine Anweisung hinzufügen könnte , würde ich es vorziehen, die fehlerhaften Teile zu kommentieren. :)
Also:
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;
}
}
*/
}
Und wir sind fertig.:)
Antwort2
Ich bin auf dasselbe Problem gestoßen.
Dieses Problem kann durch Fehler im Satzprozess verursacht werden. In meinem Fall, wenn die Tex-Datei einen Fehler enthält, kompiliere ich sie, der Satzprozess meldet den Fehler und ich breche den Satz ab. Wenn ich sie erneut setze, erscheint ein Dialog, der Sie auffordert, die AUX-Datei zu entfernen. Wenn Sie auf „OK“ klicken, erscheint ein weiterer Dialog, in dem Sie auswählen können, welche Datei entfernt werden soll. Klicken Sie dann auf „Löschen“, alle ausgewählten Dateien werden gelöscht.
Dieses Problem lässt sich wie folgt erklären:
Beim Satzvorgang ist ein Fehler aufgetreten, der Ihre AUX-Dateien ungültig macht. Sie sollten den Fehler beheben, die AUX-Dateien entfernen und dann den Satz erneut durchführen.
Dieser Dialog wird angezeigt, wenn Sie die Datei nach dem Auftreten des Fehlers zum zweiten Mal setzen.
Dieser Dialog dient nur zur Information. Tatsächlich werden die AUX-Dateien im nächsten Dialog gelöscht.
Meine Lösung besteht also darin, dass, wenn beim Satzvorgang ein Fehler auftritt und ich ihn abbreche, das Dialogfeld zum Entfernen von Dateien angezeigt wird. Dann klicke ich auf die Schaltfläche „Löschen“, um die AUX-Dateien zu entfernen. (Es gibt immer noch ein Dialogfeld, weil ich es schwierig finde, AUX-Dateien mithilfe des Skripts zu entfernen, und ich nicht weiß, wie das geht.)
Und hier ist mein Code. Die WarnAuxFiles-Funktion in Zeile 373 logParser.js
wurde geändert.
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;
}
}
}