Não me faça manualmente abortar um LaTeX compilação quando há um erro
-
09-09-2019 - |
Pergunta
Como sugerido aqui , latexmk
é uma maneira prática para melhorar continuamente a compilar o seu documento sempre a fonte muda. Mas muitas vezes quando você está trabalhando em um documento que você vai acabar com os erros e, em seguida, latex
vai entrar em pânico e aguardar a entrada do usuário antes de continuar. Isso pode ficar muito irritante, especialmente recentemente, quando eu hackeou algo a compilação latex
diretamente de um href="http://etherpad.com" rel="noreferrer"> EtherPad documento , o que economiza continuamente como você tipo.
Existe uma configuração para latex
ou latexmk
para torná-lo simplesmente abortar com uma mensagem de erro se não pode compilar? Ou, se necessário, como eu configurar algum tipo de esperar script para auto-rejeitar as reclamações de LaTeX?
(Eu tinha pensado opção pdflatex
de -halt-on-error
faria o truque, mas aparentemente não.)
Bônus pergunta: Skim no Mac OSX é uma boa pdf visualizador que autorefreshes quando as mudanças pdf (ao contrário Preview), , exceto que sempre que há um erro de látex que faz você confirmar que deseja autorefreshing. não Texniscope não tem esse problema, mas eu tive que abandonar Texniscope para outras razões . Existe uma maneira de fazer Skim sempre AUTOREFRESH, ou há outra telespectador que recebe esse direito?
ADICIONADO: Mini-tutorial on latexmk
baseado na resposta a esta pergunta:
-
Get
latexmk
aqui: http: //www.phys .psu.edu / ~ Collins / software / latexmk-JCC / -
Adicione o seguinte ao seu arquivo
~/.latexmkrc
:$pdflatex = 'pdflatex -interaction=nonstopmode';
(Para OS X com Skim)
$pdf_previewer = "open -a /Applications/Skim.app";
-
Ao editar o arquivo de origem,
foo.tex
, execute o seguinte em um terminal:latexmk -pvc -pdf foo.tex
-
Use Skim ou de outra em tempo real pdf espectador a visão foo.pdf. Para Skim, basta olhar para a guia “Sync” nas preferências do Skim e configurá-lo para o seu editor.
Voila! Bater em Guardar no foo.tex
agora causa foo.pdf
para refrescar sem tocar uma coisa.
Solução
Com MikTeX, pdflatex
tem esta opção de linha de comando:
-interaction=MODE Set the interaction mode; MODE must be one
of: batchmode, nonstopmode, scrollmode,
errorstopmode.
Editar sugerido por @ 9.999 anos:
Estes valores são equivalentes a um conjunto de látex \commands
que proporcionam a mesma funcionalidade.
A partir TeX dicas de uso :
Os modos de fazer TeX se comportam da seguinte maneira:
errorstopmode
pára em todos os erros, sejam eles sobre erros na código-fonte ou inexistentes arquivos.
scrollmode
não pára em erros na entrada da fonte, mas os pedidos quando um falha mais grave, como como um arquivo ausente ocorre.No
nonstopmode
um pouco misnamed, TeX não faz entrada de pedido depois erros graves, mas pára por completo.
batchmode
impede toda a saída, além de que (para uso em scripts automatizados). Em todos os casos, todos os erros são gravados no arquivo de log (Yourtexfile.log).
Outras dicas
Você também pode colocar \nonstopmode
ou \batchmode
logo no início do seu arquivo tex; em seguida, ele vai trabalhar com qualquer versão TeX, não apenas pdflatex
. Para mais informações sobre estes e comandos relacionados ver a referência muito boa rel="noreferrer"> . Especialmente o comando do depuração família poderia ser de interesse aqui.
Outra possível corte é simplesmente usar:
yes x | latexmk source.tex
Você pode sempre criar um alias para 'sim x | latexmk' se você estiver indo para usar esta lotes de opção. A principal vantagem deste que eu posso ver por cima das outras sugestões é que ele é muito rápido para quando você quer ocasionalmente latexmk se comportar assim.
Mehmet
Há também um comando \batchmode
pode fazer o trabalho.