67 votes

Ne me faites pas abandonner manuellement une compilation LaTeX en cas d'erreur

Comme suggéré ici, latexmk est un moyen pratique pour continuellement compiler votre document à chaque fois la source de changements. Mais souvent, lorsque vous travaillez sur un document, vous vous retrouverez avec des erreurs, et alors latex va paniquer et attendre pour la saisie de l'utilisateur avant de poursuivre. Qui peut devenir très ennuyeux, surtout récemment, lorsque j'ai piraté quelque chose pour compiler latex directement à partir d'un etherpad document, qui enregistre en continu à mesure que vous tapez.

Est-il un paramètre pour latex ou latexmk pour avorter avec un message d'erreur si il ne peut pas compiler? Ou, si nécessaire, comment j'ai mis en place une sorte de s'Attendre à un script d'auto-rejeter LaTeX plaintes?

(J'avais pensé pdflatexs'option -halt-on-error ferait l'affaire, mais apparemment pas.)

Question Bonus: Écrémé sur Mac OSX est une belle viewer pdf autorefreshes lorsque le pdf des changements (à la différence de la Prévisualisation), sauf que dès qu'il y a un latex erreur, il vous fait vous confirmer que vous souhaitez autorefreshing. Texniscope n'ont pas ce problème, mais j'ai eu un fossé Texniscope pour d'autres raisons. Est-il un moyen de faire Écrémé toujours l'autorefresh, ou est-il un autre spectateur qui obtient ce droit?


AJOUTÉ: Mini-tutoriel sur latexmk basée sur la réponse à cette question:

  1. Obtenez de l' latexmk ici: http://www.phys.psu.edu/~collins/logiciel/latexmk-ccc/
  2. Ajoutez les lignes suivantes à votre ~/.latexmkrc le fichier:

    $pdflatex = 'pdflatex -interaction=nonstopmode'; (Pour OS X avec lait Écrémé: $pdf_previewer = "open-a /Applications/Écrémé.app";)

  3. Lors de l'édition de votre fichier source, foo.tex, exécutez la commande suivante dans un terminal:

    latexmk -pvc -pdf foo.tex

  4. L'utilisation de lait Écrémé ou d'une autre en temps réel de la visionneuse pdf pour afficher foo.pdf. Pour Écrémé, il suffit de regarder l'onglet "Synchronisation" dans Écrémé et des préférences pour votre éditeur.

Voila! Frapper enregistrer sur le foo.tex cause maintenant foo.pdf pour actualiser sans toucher à une chose.

40voto

Bastien Léonard Points 18404

Avec MikTeX, pdflatex a cette option de ligne de commande:

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

6voto

Elmar Zander Points 286

Vous pouvez aussi mettre \nonstopmode ou \batchmode au tout début de votre fichier tex; puis il va travailler avec toutes les TeX version, pas seulement pdflatex. Pour plus d'informations sur ces commandes, voir la très bonne référence (raw) commandes TeX par David Bausum. En particulier la commande à partir du débogage de la famille pourrait être d'intérêt ici.

4voto

Mehmet Points 41

Un autre hack possible consiste simplement à utiliser:

 yes x | latexmk source.tex
 

Vous pouvez toujours créer un alias pour 'yes x | latexmk 'si vous allez utiliser cette option, beaucoup. L’avantage principal de ce que je peux voir au-dessus des autres suggestions est que c’est très rapide car vous voulez parfois que latexmk se comporte de la sorte.

Mehmet

0voto

Grissiom Points 406

Il existe également une commande \batchmode pouvant faire le travail.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X