Comme suggéré ici , latexmk
est un moyen pratique de compiler continuellement votre document chaque fois que la source change. Mais souvent, lorsque vous travaillez sur un document, vous vous retrouverez avec des erreurs, puis latex
va paniquer et attendre la saisie de l'utilisateur avant de continuer. Cela peut devenir très gênant, surtout récemment lorsque j'ai piraté quelque chose pour compiler latex
directement à partir d'un document eTherPad , qui enregistre en permanence à mesure que vous tapez.
Y a-t-il un paramètre pour latex
ou latexmk
pour le rendre juste avortement avec un message d'erreur s'il ne peut pas compiler? Ou, si nécessaire, comment puis-je configurer une sorte d'attendre de l'écriture pour rejeter automatiquement les plaintes de Latex?
(J'avais pensé pdflatex
's option -halt-on-error
ferait l'affaire mais apparemment pas.)
Question bonus: Skim sur Mac OSX est un joli spectateur PDF que AutOuteFreshes lorsque le PDF change (contrairement à la prévisualisation), sauf que chaque fois qu'il y a une erreur de latex, elle fait Vous devez reconfirmer que vous voulez avoir de l'autoréfreshing. Texniscope n'a pas ce problème, mais je devais abandonner Texniscope pour autres raisons . Existe-t-il un moyen de faire écrémer toujours Autorefresh ou existe-t-il un autre spectateur qui obtient ce droit?
latexmk
basé sur la réponse à cette question:Obtenez latexmk
ICI: http://www.phys.psu.edu/~collins/software/latexmk-jcc/
Ajoutez ce qui suit à votre ~/.latexmkrc
déposer:
$pdflatex = 'pdflatex -interaction=nonstopmode';
(Pour OS X avec SKIM)
$pdf_previewer = "open -a /Applications/Skim.app";
Lors de la modification de votre fichier source, foo.tex
, exécutez ce qui suit dans un terminal:
latexmk -pvc -pdf foo.tex
Utilisez SKIM ou un autre Viewer PDF en temps réel pour voir FOO.PDF. Pour Skim, regardez simplement l'onglet "Sync" dans les préférences de Skim et définissez-la pour votre éditeur.
Voilà! Frapper économiser sur foo.tex
va maintenant causer foo.pdf
Pour rafraîchir sans toucher une chose.
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.
Modifier suggéré par @ 9999Years:
Ces valeurs sont équivalentes à un ensemble de latex \commands
qui fournissent la même fonctionnalité.
De Conseils d'utilisation Tex :
Les modes rendent TEX se comportent de la manière suivante:
errorstopmode
s'arrête sur toutes les erreurs, qu'il s'agisse d'erreurs dans le code source ou des fichiers inexistants.
scrollmode
ne s'arrête pas sur les erreurs dans la source, mais demande la saisie lorsqu'une erreur plus grave comme un fichier manquant a lieu.Dans le quelque peu
nonstopmode
, Tex ne demande pas d'entrée après de graves erreurs, mais cesse complètement.
batchmode
Empêche toute la sortie en plus de celle (destinée à être utilisée dans des scripts automatisés). Dans tous les cas, toutes les erreurs sont écrites dans le fichier journal (yourtexfile.log).
Vous pouvez également mettre \nonstopmode
ou \batchmode
au tout début de votre fichier Tex; Ensuite, cela fonctionnera avec n'importe quelle version TEX, pas seulement pdflatex
. Pour plus d'informations sur ces commandes et les commandes associées, voir la très bonne référence sur (RAW) TEX Commandes de David Bausum . Surtout la commande de la famille de débogage pourrait être d'intérêt ici.
Un autre hack possible est simplement d'utiliser:
yes x | latexmk source.tex
Vous pouvez toujours créer un alias pour 'oui x | latexmk 'Si vous allez utiliser cette option lots. L'avantage principal de cela que je peux voir au-dessus des autres suggestions est qu'il est très rapide lorsque vous voulez de temps en temps la latexmk de se comporter comme ceci.
Mehmet
Il y a aussi \batchmode
commande peut faire le travail.