Emacs: se latexmk terminar ok, então mostre pdf, senão exibir erros

Alguém poderia me dar a mão com o passo entre oprimeiro start-process e asegundo start-process. osegundo start-process que exibe o arquivo pdf deve ser executadoonly if aprimeiro start-process acabamentossem erros. Provavelmente existe algum tipo de código de saída bem-sucedido que pode ser visto, mas eu precisaria de alguma ajuda, a esse respeito.

Estou aberto a sugestões sobre a melhor maneira de determinar se oprimeiro start-process terminou sem erros. Um método seria olhar para ooutput buffer para determinar se a última linha é igual a "Processoprocess terminou ". Fazendo o arquivo * .pdf pode levar algunssegundos mesmo que seja sem erros, eosegundo start-process falha se começar cedo demais. Sit-for não é a melhor opção, já que osegundo start-process deve ser abortado se oprimeiro start-process não foi concluído corretamente. Gerando ooutput O buffer também leva alguns segundos, portanto, a verificação da última linha no buffer também precisaria esperar até que oprimeiro start-process acabamentos. Entretanto, localizar um código de saída bem-sucedido (se tal coisa existir) seria melhor do que pesquisar um buffer de saída para uma string igual. . . .

FYI: O .latexmkrc$pdflatex linha de código coloca uma cópia do * .pdf de volta no diretório de trabalho, e o .latexmkrc$out_dir linha de código coloca todos os arquivos auxiliares no/tmp pasta. Isso é necessário porque o Tex-Live for OSX não suporta$aux_dir. O resultado é um diretório de trabalho limpo contendo apenas arquivos * .tex e * .pdf.

(defun latexmk ()
  ".latexmkrc should contain the following entries -- without the backslashes:
  $pdflatex .= ' && (cp \"%D\" \"%R.pdf\")';
  $force_mode = 1;
  $pdf_mode = 1;
  $out_dir = '/tmp';"
(interactive)
  (let* (
    (process (file-name-nondirectory buffer-file-name))
    (output (concat "*" (file-name-nondirectory buffer-file-name) "*") )
    (latexmk "/usr/local/texlive/2012/texmf-dist/scripts/latexmk/latexmk.pl")
    (arg-1 "-interaction=nonstopmode")
    (arg-2 "-file-line-error")
    (arg-3 "-synctex=1")
    (arg-4 "-r")
    (arg-5 "/Users/HOME/.0.data/.0.emacs/.latexmkrc")
    (pdf-file (concat "/tmp/" (car (split-string
      (file-name-nondirectory buffer-file-name) "\\.")) ".pdf"))
    (line (format "%d" (line-number-at-pos)))
    (skim "/Applications/Skim.app/Contents/SharedSupport/displayline") )
  (if (buffer-modified-p)
    (save-buffer))
  (start-process process output latexmk arg-1 arg-2 arg-3 arg-4 arg-5 buffer-file-name)
  ;;  (if (last line of output buffer is "Process 'process' finished")
      (start-process "displayline" nil skim "-b" line pdf-file buffer-file-name)
    (switch-to-buffer output)
  ;;  )
    ))

EDITAR: Uma solução de trabalho baseada no conceito delineado por Francesco na resposta abaixo está disponível em um tópico relacionado:https://tex.stackexchange.com/a/156617/26911

questionAnswers(1)

yourAnswerToTheQuestion