Ошибка компиляции Emacs Auctex: используйте M-x make-directory RET RET для создания каталога и его родителей.

Я запускаю emacs 23.3.1 на ubuntu 12.04 с auctex 11.86. Всякий раз, когда я собираюсь скомпилировать латексный документ (используя C-c C-c), если ошибок нет, все компилируется нормально. Однако, если есть какие-либо ошибки, он скажет мне использовать C-` для просмотра ошибок, если я это сделаю, я получаю это сообщение об ошибке

Используйте M-x make-directory RET RET для создания каталога и его родителей.

и он уходит через пару секунд. Затем я попадаю на другой экран, объясняющий ошибку в латексном коде. Однако теперь я не могу просто выполнить C-x 1, чтобы вернуться к латексному коду. Мне нужно C-x C-c и перезапустить emacs.

Это мой .emacs файл

(setq backup-by-copying t
      backup-directory-alist '(("." . "~/.emacsBkups"))
      delete-old-versions t
      kept-new-versions 5
      kept-old-versions 2
      version-control t)


(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq TeX-PDF-mode t)

;;(require 'ess-site)
;;(ess-toggle-underscore nil)
(require 'whitespace)
(setq whitespace-style '(lines-tail face))

(add-hook 'c-mode-hook 'whitespace-mode)
(add-hook 'c++-mode-hook 'whitespace-mode)
(add-hook 'python-mode-hook 'whitespace-mode)

(add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode))
(c-set-offset (quote cpp-macro) 0 nil)



(setq TeX-view-program-list '(("Evince" "evince --page-index=%(outpage) %o")))
(setq TeX-view-program-selection '((output-pdf "Evince")))

person nick    schedule 27.06.2013    source источник
comment
AUCTeX 12,82? О.о. Последняя стабильная версия - 11.87, где вы взяли AUCTeX?   -  person giordano    schedule 27.06.2013
comment
Ой, подождите ... Я просто вернулся и проверил, и там написано 11,86 .... не уверен, что я видел изначально. Я внес правку.   -  person nick    schedule 27.06.2013
comment
Есть ли на пути к вашему документу пробелы?   -  person giordano    schedule 27.06.2013
comment
мое имя документа - WNS_poster.tex Я пробовал его без подчеркивания, но все равно выдает ошибку   -  person nick    schedule 27.06.2013
comment
Поместите это в свой .emacs: (setq LaTeX-command-style '(("" "%(PDF)%(latex) -file-line-error %S%(PDFout)"))), перезапустите Emacs и сообщите нам, работает ли это.   -  person giordano    schedule 27.06.2013
comment
Это сработало! Вы можете объяснить, что делает эта строка кода? Я отмечу это как решенное.   -  person nick    schedule 27.06.2013
comment
Рассмотрите возможность обновления Emacs и AUCTeX. 23.3.1 и 11.86 соответственно действительно старые и лишены многих современных функций. Я не знаю об AUCTeX, но для Emacs есть PPA, который предоставляет последнюю версию 24.3.   -  person lunaryorn    schedule 27.06.2013


Ответы (1)


Иногда AUCTeX сбивается с толку при анализе журнала компиляции (La) TeX и не может угадать правильную строку, вызывающую ошибку. В некоторых случаях AUCTeX выдает непонятное сообщение «Ошибка произошла после закрытия последнего файла TeX», когда есть несбалансированные круглые скобки, в вашем случае он предлагает вам создать новый каталог. Чтобы помочь AUCTeX найти правильную строку, вызывающую ошибку, вы можете добавить параметр -file-line-error к latex или pdflatex, настроив переменную LaTeX-command-style. Для этого добавьте в свой .emacs следующий код:

(setq LaTeX-command-style '(("" "%(PDF)%(latex) -file-line-error %S%(PDFout)")))

См. Также FAQ по AUCTeX:

8. Почему TeX-next-error (C-c `) не работает?

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

В качестве обходного пути вы можете активировать так называемые сообщения об ошибках file: line: для файла журнала. (Их легче анализировать, но в них могут отсутствовать некоторые детали.) Либо вы делаете это в конфигурации вашей системы TeX (обратитесь к ее руководству, чтобы узнать, где это), либо вы добавляете переключатель командной строки к вызову (la) tex , например настроив LaTeX-command-style или TeX-command-list.

person giordano    schedule 27.06.2013
comment
Отличное объяснение. Я очень ценю помощь. - person nick; 27.06.2013
comment
Привет. Я использую emacs 21.3, и у меня было «Использовать C-u M-x make-directory RET RET для создания каталога и его родителей» сообщение и проблема с белым текстовым полем при открытии файла в режиме python. Оказалось, что проблема связана с путем к файлу, как и в случае с этим вопросом. Более подробно, я открывал файлы, хранящиеся в каталоге под названием «Téléchargements», где буква e с французским акцентом, похоже, вызывает проблему. Удаление файлов решило проблему. - person Lorenzo; 30.11.2017