Derzeit kann ich meine .tex-Dateien nicht mit einer Kombination aus Batchdatei und Befehl ausführen in PDFs kompilieren – es wird bei mehreren Zeilen ein Fehler ausgegeben, den ich im Code mit einem „*“ davor markieren werde. Die einzige Lösung, die ich dafür gefunden habe, war, die Pfaddatei zu ändern, um das MiKTeX-Verzeichnis hinzuzufügen – was ich getan habe, und das Problem besteht weiterhin. Ich konnte keine anderen Lösungen finden.
Zuerst der Ausführungsbefehl:
"C:\Users\Matthew\Desktop\latex.bat" "$(CURRENT_DIRECTORY)" "$(NAME_PART)"
Dann die .bat selbst
%~d1
cd %1
*call:cleanup
*pdflatex %2
*bibtex %2
*pdflatex %2
*pdflatex %2
*call:cleanup
START "" "C:\Program Files\SumatraPDF\SumatraPDF.exe" %2 -reuse-instance
del *.dvi
del *.aux
del *.bbl
del *.blg
del *.brf
del *.out
goto:eof
Der gesamte Code wurde übernommen vondiese Webseite.
Die einzigen funktionierenden Teile sind meines Wissens nach der Ausführungsbefehl selbst, der Start des PDF-Programms (und der Versuch, eine nicht vorhandene Datei zu öffnen, da MiKTeX nicht funktioniert) und das Löschen der Protokolldateien ganz am Ende. PDFLatex selbst kann über die Eingabeaufforderung aufgerufen werden, aber aus irgendeinem Grund funktioniert der Versuch, es in die Batchdatei einzufügen, nicht.
Antwort1
Die Frage ist eine gekürzte Version der verlinkten Quelldateies wird nicht richtig funktionierenda es keine :cleanup-Zeile gibt, schlägt call:cleanup bis zum Standarddel(s) am Ende fehl.
„Das System kann das angegebene Chargenetikett nicht finden – Bereinigung“
Während die Batchdatei gemäß der Beschreibung zu laufen scheint, wird auch das SumatraPDF verständlicherweise fehlschlagen, da der Befehl ohne die.pdf-Datei wieder falsch ist
das Seltsame ist, dass laut Beschreibung PDFLATEX usw. auch nach Durchführung dieser Korrekturen ausgeführt werden sollte, aber ohne einen Hinweis auf die Ausgabefehler kann niemand sagen, warum nicht.
Um die Fehler abzufangen, fügen Sie nach der Zeile, in der SumatraPDF gestartet wurde, eine Pause in einer separaten Zeile ein.
Für den Fall, dass die verlinkte Quelle entfernt wird, finden Sie hier eine korrigierte Version gemäß meinen obigen Kommentaren.Beachten Sie die Vorbedingungen des Autors. Ein Tex-Bin (MiKTeX oder TeX Live muss sich auf dem Pfad befinden.
Diese Batch-Datei wird mit zwei separaten Argumenten in Anführungszeichen aufgerufen:
A) der vollständige Pfad in Anführungszeichen zur Tex-Datei, z. B. „d:\my docs“
B) der Dateiname in Anführungszeichen ohne Erweiterung, z. B. „my tex file“.
Sie kann von einer Eingabeaufforderung oder einem Editor aus ausgeführt werden.
Es kann sogar so geändert werden, dass es aus dem PDF in SumatraPDF aufgerufen wird, sodass es beim Ausführen aus dem PDF-Viewer alle einfachen Änderungen neu kompilieren kann, die im Standard-MSnotePad oder Wordpad/write vorgenommen wurden (wer braucht schon einen IDE-Editor :-)
%~d1
cd %1
:: the following line will delete all files listed below prior to a new run and again as it opens the pdf so do NOT list the synctex files
call:cleanup
:: the following calls do not include common requirements such as -synctex=1 etc. (compare with your normal workflow)
pdflatex %2
bibtex %2
pdflatex %2
pdflatex %2
"C:\Program Files\SumatraPDF\SumatraPDF.exe" %2.pdf
:cleanup
del *.dvi
del *.aux
del *.bbl
del *.blg
del *.brf
del *.out
:: the following eof is needed once to return to the initial call above then will be ignored on final run
goto:eof