Domanda

qui , latexmk è un modo pratico per compilare continuamente il vostro documento ogni volta che la sorgente cambia. Ma spesso quando si lavora su un documento che si ritroverà con gli errori e poi latex sarà prendere dal panico e attendere l'input dell'utente prima di continuare. Che può diventare molto fastidioso, soprattutto di recente, quando ho inciso qualcosa per compilare latex direttamente dal documento Etherpad , che consente di risparmiare in modo continuo, come si tipo.

È ci una regolazione per latex o latexmk per renderlo appena si interrompe con un messaggio di errore se non riesce a compilare? O, se necessario, come faccio a creare una sorta di Expect script per auto-respingere i reclami di LaTeX?

(avevo pensato opzione pdflatex di -halt-on-error farebbe il trucco, ma a quanto pare non.)

Domanda bonus: Skim su Mac OSX è un bel visualizzatore di PDF che autorefreshes quando cambia il pdf (a differenza di anteprima), tranne che ogni volta che c'è un errore di lattice che fa di riconfermare che si desidera autorefreshing. Texniscope non ha questo problema, ma ho dovuto abbandonare per Texniscope altri motivi . C'è un modo per rendere Skim AutoRefresh sempre, o c'è un altro spettatore che ottiene questo diritto?


AGGIUNTO: Mini-tutorial su latexmk in base alla risposta a questa domanda:

  1. Get latexmk qui: http: //www.phys .psu.edu / ~ Collins / software / latexmk-CCM /

  2. Aggiungi il seguente al file ~/.latexmkrc:

    $pdflatex = 'pdflatex -interaction=nonstopmode';
    

    (Per OS X con Skim)

    $pdf_previewer = "open -a /Applications/Skim.app";
    
  3. Mentre si modifica il file sorgente, foo.tex, eseguire il seguente in un terminale:

    latexmk -pvc -pdf foo.tex
    
  4. Skim o in un altro in tempo reale PDF Viewer per visualizzare prova.pdf. Per Skim, basta guardare la scheda “Sync” nelle preferenze di scremato e configurarlo per l'editor.

Voila! Colpire risparmiare sui foo.tex sarà ora causare foo.pdf per aggiornare senza toccare nulla.

È stato utile?

Soluzione

Con MikTeX, pdflatex ha questa opzione della riga di comando:

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

Modifica suggerito da @ 9999years:

Questi valori sono equivalenti ad un insieme di LaTeX \commands che fornisce la stessa funzionalità.

suggerimenti per l'uso TeX :

  

I modi fanno TeX si comportano nel modo seguente:

     
      
  • errorstopmode si ferma su tutti gli errori, siano essi su errori nella   codice sorgente o file inesistenti.

  •   
  • scrollmode non si ferma in caso di errori nella sorgente, ma richiede di ingresso quando un   errore più grave come si verifica come un file mancante.

  •   
  • Nel nonstopmode po misnamed, TeX non richiede input dopo   gravi errori ma si ferma del tutto.

  •   
  • batchmode impedisce ogni uscita in aggiunta a quello (destinato all'impiego in   script automatizzati). In tutti i casi, tutti gli errori vengono scritti nel file di log   (Yourtexfile.log).

  •   

Altri suggerimenti

Si può anche mettere \nonstopmode o \batchmode proprio all'inizio del file tex; allora funzionerà con qualsiasi versione TeX, non solo pdflatex. Per ulteriori informazioni su questi e comandi correlati vedere l'ottimo sui comandi (grezzo) TeX di David Bausum . Soprattutto il comando dal debug famiglia potrebbe essere di interesse qui.

Un altro possibile hack è semplice da usare:

yes x | latexmk source.tex

Si può sempre creare un alias per 'sì x | latexmk' se avete intenzione di utilizzare questa opzione lotti. Il vantaggio principale di questo che posso vedere sopra gli altri suggerimenti è che è molto veloce per quando si desidera di tanto in tanto latexmk a comportarsi in questo modo.

Mehmet

C'è anche un comando \batchmode può fare il lavoro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top