Примечание: После некоторых разъяснений я вижу, что следующее не совсем то, о чем просили. Мой другой ответ на этот вопрос должен сделать работу.
Похоже, что автоматическое открытие буфера требует изменения функции, которая вызывается при запуске latex. (По крайней мере, я не могу найти какой-либо крючок, который позволил бы вам это сделать.) Это на самом деле одна из вещей, которая была сделана в предыдущем ответе на этот вопрос, который вы упомянули. В частности, линии
(if (plist-get TeX-error-report-switches (intern master-file))
(TeX-next-error t)
(minibuffer-message "latexmk done"))))
проверьте, не было ли ошибки. Если это так, функция запускается TeX-next-error
; если нет, то просто печатает сообщение. Так что вы можете попробовать установить эту функцию.
Автоматическое закрытие буфера справки требует лишь небольшой корректировки функции Ивана Андруса. В области вокруг «Больше никаких ошибок» просто замените соответствующую часть на:
((null
(re-search-forward regexp nil t))
;; No more errors.
(message "No more errors.")
(beep)
(delete-window (get-buffer-window (get-buffer "*TeX Help*")))
(kill-buffer "*TeX Help*")
(TeX-pop-to-buffer old)
nil)
Это фактически убивает буфер справки после закрытия его окна, но вы можете закомментировать это, если вам по какой-то причине он не нравится.
Еще один хороший вариант - поместить (setq TeX-display-help nil)
в ~/.emacs
. При этом буфер справки даже не отображается. Вместо этого в минибуфер помещается лаконичное сообщение, описывающее ошибку, а курсор помещается на неверную строку в оригинале. (Я никогда не нахожу большую часть этой справочной информации полезной.)
Наконец, вы можете попробовать другую привязку клавиш для TeX-next-error
, потому что C-c '
неудобно.