Отслеживание ошибок экспорта в Org LaTeX


9

Как вы отслеживаете ошибки, обнаруженные в процессе экспорта? Я пишу документ Org и экспортирую его в PDF. (Я не знаю LaTeX).

Я получаю следующее сообщение об ошибке: org-latex-compile: PDF file ./myfile.pdf wasn't produced: [undefined control sequence] [package error] Runaway argument. Методом проб и ошибок я сузил его до этого раздела документа:

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

После долгих поисков в Интернете я обнаружил, что ограничение LaTeX заключается в том, что дословный текст нельзя использовать в подзаголовке. LaTeX, сгенерированный из приведенного выше фрагмента, содержит следующие строки:

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

Изменение подзаголовков в неупорядоченный список решило проблему:

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

потому что эти сгенерированные строки выглядели больше так:

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

Теперь, наконец, вот мой вопрос: есть ли лучший способ для отслеживания, диагностики и устранения таких ошибок, чем мой поиск методом проб и ошибок плюс веб-поиск (если, скажем, потратить несколько недель на изучение LaTeX) ?

В настоящее время мой файл производит , казалось бы, мелкий PDF ... но процесс экспорта делает выдает сообщение об ошибке: Process completed with errors: [package error]. Я понятия не имею, серьезно ли это, повлияло ли это на мой вывод PDF способом, которого я еще не заметил, или это тривиально и должно игнорироваться. Любая помощь приветствуется.


6
Есть буфер, в который Org записывает выходные данные из tex2pdfлюбой другой команды, которую вы используете для создания PDF. Переключитесь, чтобы *Org PDF LaTeX Output*увидеть это. Ошибка пакета обычно означает, что вы использовали какой-то пакет, который вы не установили (вам не хватает некоторого файла STY).
wvxvw

Ага! Очень интересно, я этого не заметил. Конечно же, есть error- не вызван отсутствующим пакетом, но генерируются с помощью пакета. inputencпожаловался, потому что я использовал UTF-символ, который LaTeX явно не может представить. Спасибо!
Сью Д. Нимм

Ответы:


8

Как подсказывает @wvxvw в комментариях, *Org PDF LaTeX Output*проверка буфера - это место, где можно проверить ошибки. Имея некоторое базовое знакомство с LaTeX, вы должны быть в состоянии отследить относительно простые ошибки, подобные этим (которые, по моему опыту, почти всегда происходят из \verbкоманды. Однако может показаться, что вы не сможете напрямую отследить ошибку до оригинальный файл Org.


Нет способа напрямую перейти на оскорбительную строку в файле .org?
Бекко

1

Я нахожу связывание макроса, подобного следующему, очень полезным:

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

Это просто:

  • Переключается на буфер с помощью ido
  • Ищет строку "Роковая ошибка"

Конечно, вы можете сделать то же самое более программно, но я думаю, что этого достаточно для такого базового использования. Также это хороший пример мощи связываний и макросов в emacs, особенно для людей из vim, которые привыкли к noremapсвязыванию стилей.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.