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:

  1. Get latexmk aqui: http: //www.phys .psu.edu / ~ Collins / software / latexmk-JCC /

  2. Adicione o seguinte ao seu arquivo ~/.latexmkrc:

    $pdflatex = 'pdflatex -interaction=nonstopmode';
    

    (Para OS X com Skim)

    $pdf_previewer = "open -a /Applications/Skim.app";
    
  3. Ao editar o arquivo de origem, foo.tex, execute o seguinte em um terminal:

    latexmk -pvc -pdf foo.tex
    
  4. 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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top