Frage

Wie vorgeschlagen Hier, latexmk ist eine praktische Möglichkeit, Ihr Dokument kontinuierlich zu kompilieren, wenn sich die Quelle ändert.Bei der Arbeit an einem Dokument treten jedoch häufig Fehler auf latex gerät in Panik und wartet auf Benutzereingaben, bevor es fortfährt.Das kann sehr nervig sein, vor allem, wenn ich kürzlich etwas gehackt habe, um es zu kompilieren latex direkt von einem Etherpad Dokument, das während der Eingabe kontinuierlich gespeichert wird.

Gibt es eine Einstellung für latex oder latexmk damit es einfach mit einer Fehlermeldung abbricht, wenn es nicht kompiliert werden kann?Oder wie würde ich bei Bedarf eine Art Expect-Skript einrichten, um die Beschwerden von LaTeX automatisch abzulehnen?

(Ich hatte gedacht pdflatex's Option -halt-on-error würde den Zweck erfüllen, aber anscheinend nicht.)

Bonus-Frage:Skim unter Mac OSX ist ein netter PDF-Viewer, der automatisch aktualisiert, wenn sich das PDF ändert (im Gegensatz zur Vorschau). außer dass Sie bei jedem Latexfehler erneut bestätigen müssen, dass Sie eine automatische Aktualisierung wünschen.Texniscope hat dieses Problem nicht, aber ich musste Texniscope dafür aufgeben andere Gründe.Gibt es eine Möglichkeit, Skim immer automatisch aktualisieren zu lassen, oder gibt es einen anderen Viewer, der das richtig macht?


HINZUGEFÜGT:Mini-Tutorial auf latexmk basierend auf der Antwort auf diese Frage:

  1. Erhalten latexmk Hier: http://www.phys.psu.edu/~collins/software/latexmk-jcc/

  2. Fügen Sie Folgendes zu Ihrem hinzu ~/.latexmkrc Datei:

    $pdflatex = 'pdflatex -interaction=nonstopmode';
    

    (Für OS X mit Skim)

    $pdf_previewer = "open -a /Applications/Skim.app";
    
  3. Während Sie Ihre Quelldatei bearbeiten, foo.tex, führen Sie Folgendes in einem Terminal aus:

    latexmk -pvc -pdf foo.tex
    
  4. Verwenden Überfliegen oder einen anderen Echtzeit-PDF-Viewer zum Anzeigen von foo.pdf.Schauen Sie sich für Skim einfach die Registerkarte „Synchronisieren“ in den Skim-Einstellungen an und richten Sie sie für Ihren Editor ein.

Voila!Klicken Sie auf „Speichern“. foo.tex wird nun dazu führen foo.pdf sich erfrischen, ohne etwas zu berühren.

War es hilfreich?

Lösung

Mit MikTeX, pdflatex hat diese Befehlszeilenoption:

  -interaction=MODE               Set the interaction mode; MODE must be one
                                  of: batchmode, nonstopmode, scrollmode,
                                  errorstopmode.

Bearbeiten vorgeschlagen von @ 9999years:

Diese Werte entsprechen einem Satz von LaTeX \commands, die die gleiche Funktionalität bieten.

TeX Tipps zur Verwendung :

  

Die Modi machen TeX in der folgenden Art und Weise verhalten:

     
      
  • errorstopmode stoppt auf alle Fehler, ob sie über Fehler in der sind   Quellcode oder nicht vorhandene Dateien.

  •   
  • scrollmode hört nicht auf Fehler in der Quelle, sondern fordert Eingang, wenn ein   ernstere Fehler wie wie eine fehlende Datei auftritt.

  •   
  • In dem etwas falsch benannte nonstopmode, TeX fordert keine Eingabe nach   schwerwiegende Fehler aber stoppt überhaupt.

  •   
  • batchmode verhindert alle Ausgaben zusätzlich zu den (für den Einsatz in   automatisierte Skripte). In allen Fällen werden alle Fehler in die Protokolldatei geschrieben   (Yourtexfile.log).

  •   

Andere Tipps

Sie können auch \nonstopmode oder \batchmode ganz am Anfang Ihrer tex-Datei setzen; es wird dann mit jeder TeX-Version arbeitet, nicht nur pdflatex. Für weitere Informationen über diese und ähnliche Befehle finden Sie in der sehr guten Bezug auf (raw) TeX-Befehle von David Bausum . Vor allem der Befehl von der Debug-Familie könnte hier von Interesse sein.

Ein weiterer möglicher Hack besteht darin, einfach Folgendes zu verwenden:

yes x | latexmk source.tex

Sie könnten immer einen Alias ​​für 'Ja x | erstellen Latexmk 'Wenn Sie diese Option viele verwenden.Der Hauptvorteil davon, den ich gegenüber den anderen Vorschlägen sehe, besteht darin, dass es sehr schnell geht, wenn Sie gelegentlich möchten, dass sich latexmk so verhält.

Mehmet

Es gibt auch einen \batchmode Befehl kann die Arbeit machen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top