Rastreando erros de exportação do Org LaTeX

9

Como você rastreia os erros relatados durante o processo de exportação? Estou escrevendo um documento organizacional e exportando-o para PDF. (Eu não conheço o LaTeX).

Eu estava recebendo o seguinte erro: org-latex-compile: PDF file ./myfile.pdf wasn't produced: [undefined control sequence] [package error] Runaway argument. Por tentativa e erro, reduzi-o a esta seção do documento:

* Prefix key
  * ~M-p~ (currently unassigned)
  * ~H-c~ (currently unassigned)
  * ~H-;~ (currently unassigned)

Após muita pesquisa na web, descobri que uma limitação do LaTeX é que o texto literal não pode ser usado em uma subposição. O LaTeX gerado a partir do snippet acima incluía linhas como:

\subsubsection{\verb~M-p~ (currently unassigned)}

Alterar os subtítulos para uma lista não ordenada resolveu o problema:

* Prefix key
  - ~M-p~ (currently unassigned)
  - ~H-c~ (currently unassigned)
  - ~H-;~ (currently unassigned)

porque essas linhas geradas se pareciam mais com isso:

\item \verb~M-p~ (currently unassigned)

Agora, finalmente, aqui está a minha pergunta: Existe uma maneira melhor de rastrear, diagnosticar e solucionar esses erros do que minha pesquisa por tentativa e erro e mais a web (menos do que, digamos, passar algumas semanas aprendendo o LaTeX) ?

Atualmente, o meu arquivo produz uma aparentemente-fino PDF ... mas o processo de exportação emite uma mensagem de erro: Process completed with errors: [package error]. Não tenho idéia se isso é sério, se afetou minha saída de PDF de uma maneira que ainda não notei ou se é trivial e deve ser ignorado. Qualquer ajuda é apreciada.

Sue D. Nymme
fonte
6
Há um buffer no qual a organização registra a saída tex2pdfou qualquer outro comando que você usa para gerar PDF. Mude para o *Org PDF LaTeX Output*ver. Erro de pacote normalmente significa que você usou algum pacote que não instalou (está faltando algum arquivo STY).
Wdxvw
Aha! Muito interessante, eu não tinha percebido isso. Com certeza, há o erro - não causado por um pacote ausente, mas gerado por um pacote. inputencreclamei porque usei um caractere UTF que o LaTeX aparentemente não pode representar. Obrigado!
Sue D. Nymme

Respostas:

8

Como @wvxvw sugeriu nos comentários, olhando para o *Org PDF LaTeX Output* buffer é o lugar para verificar os erros. Com alguma familiaridade básica com o LaTeX, você deve ser capaz de rastrear erros relativamente simples como esses (que na minha experiência quase sempre vêm do \verbcomando. No entanto, parece que você não poderá rastrear diretamente o erro até o arquivo organizacional original.

GJStein
fonte
Não há como ir diretamente para a linha incorreta no arquivo .org?
Becko
1

Acho que vincular uma macro como a seguinte é muito útil:

(local-set-key (kbd "C-c m o")
               (kbd "C-x b org SPC output RET M-< C-s fatal SPC error"))

É só:

  • Muda para o buffer usando ido
  • Procura a sequência "erro fatal"

Claro que você pode fazer o mesmo de forma mais programática, mas acho que isso é suficiente para um uso tão básico. Também é um bom exemplo do poder das ligações e macros do emacs, especialmente para pessoas provenientes do vim que são usadas no noremapestilo de ligação.

memeplex
fonte