Настройка Auctex для emacs

1694
CodeKingPlusPlus

Мне нужна помощь с настройкой auctex в emacs. Я скачал и установил Auctex, но я не могу заставить что-либо работать. Я использую MAC OS X 10.8.4 и запускаю emacs через терминал. Если я использую Aquamacs emacs (emacs с графическим интерфейсом для MAC), я могу, по крайней мере, заставить команду View работать (она открывает программу просмотра PDF по умолчанию, которая называется Preview).

Тем не менее, я хочу использовать emacs через терминал. Я добавил следующее в мой .emacsфайл:

(load "auctex.el" nil t t) ;; loads tex-site in such a way so that it can be undone  (load "preview-latex.el" nil t t) ;; actual preview-latex  (setq TeX-view-program-list '(("Shell Default" "open %o")))  (setq TeX-view-program-selection '((output-pdf "Shell Default")))  (setq TeX-PDF-mode t)  (setq TeX-auto-save t)  (setq TeX-parse-self t)  (setq-default TeX-master nil)  (add-hook 'LaTeX-mode-hook 'visual-line-mode)  (add-hook 'LaTeX-mode-hook 'flyspell-mode)  (add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)  (add-hook 'LaTeX-mode-hook 'turn-on-reftex)  (setq reftex-plug-into-AUCTeX t) 

Можно ли даже запустить Latex через терминал в emacs? Я относительно новичок во всем этом (однако мне удалось установить все остальное, что мне было нужно, например, несколько переводчиков и даже веб-браузер!). До сих пор я пытался открыть документ TeX (который прекрасно загружается и переключается в режим, называемый «LaTeX / MP Ref Wrap» (это правильно для Auctex?). Я набираю:C-c C-c

Emacs дает мне подсказку:Command: (default LaTeX)

Мои варианты:

Possible completions are:  BibTeX Check Clean Clean All File Index  LaTeX Other Print Queue Spell View 

Если я решу использовать, LaTeXя получу это от emacs:

LaTeX errors in `*~/path/to/file output*'. Use C-c ` to display.   So I type C-c ` to display the errors and this is what I get from emacs:  ERROR: LaTeX Error: File `etoolbox.sty' not found.   --- TeX said ---   Type X to quit or <RETURN> to proceed,  or enter new name. (Default extension: sty)   Enter file name:  ! Emergency stop.  <read *>   l.28 \def  \NN{\tabularnewline}^^M  --- HELP ---  From the .log file...   *** (cannot \read from terminal in nonstop modes) 
  1. Как бы я это исправить?

    Кроме того, вместо того, чтобы печатать, LaTeXя попытался View. Emacs запросил и автоматически завершил:View command: dvi2tty -q -w 132 file_name

Я нажимаю Enter, чтобы выполнить эту команду, и emacs отвечает:

View: done.

Теперь есть новый буфер с контентом:

unning `View' on `combinatorics_bin_trees' with ``dvi2tty -q -w 132 combinatorics_bin_trees''  /bin/sh: dvi2tty: command not found   View exited abnormally with code 127 at Fri Jun 14 16:55:35 

Обратите внимание, как указано выше, с Aquamacs Emacs (Emacs для MAC OS X) Viewкоманда откроет средство просмотра PDF по умолчанию, которое называется Preview. Значит, мне не хватает какой-то посылки? (это разочаровывает, учитывая, что я использую менеджеры пакетов, которые вырабатывают зависимости, чтобы загрузить все мои программы ...)

Как я могу исправить эту проблему? Вся помощь очень ценится! Я также приветствую любые предложения по настройке параметров auctex для emacs и любые общие ссылки, которые полезны (я не нашел emacswiki о auctex, чтобы быть полезным вообще!)

0

2 ответа на вопрос

1
lawlist

If Emacs is not finding *.sty, then you need to set the path. This is for MacTeX.pkg installation. If you use the Macports or Homebrew, then the path would be different, but similar. Fix that problem and then report back and we'll help you get further along if there are still errors.

(setenv "PATH" (concat (getenv "PATH") ":/usr/texbin")) (setq exec-path (append exec-path '("/usr/texbin"))) 
Что я должен ввести для пути? Я использую Macports, и используется каталог `/ opt / local`, поэтому в терминале я ввел` find / -type f -name etoobox.sty ', и он ничего не нашел ... CodeKingPlusPlus 11 лет назад 0
Вам нужно поискать в / opt / local и найти. , ./bin - это может быть уровень или два глубже, чем это. Ваш полный путь к. , ./bin вставляется в код в этом ответе, который помещается в ваш файл .emacs или init.el. Если вы еще не установили tex через macports, вам нужно будет это сделать. lawlist 11 лет назад 0
0

The AUCTeX should be loaded when you open a tex file. Its major mode is LaTeX. I noticed in your compile message: `etoolbox.sty' is missing. So make sure the package is present and available. You may try to compile the tex file through system terminal to see if there is something wrong with AUCTeX.

Also you have to import "SHELL" paths into variable "exec-path". To do this, I put the following function in init.el.

(defun set-exec-path-from-shell-PATH () "Set `exec-path' from `PATH' environment variable" (let ((path-from-shell (replace-regexp-in-string "[[:space:]\n]*$" "" (shell-command-to-string "$SHELL -l -c 'echo $PATH'")))) (setenv "PATH" path-from-shell) (setq exec-path (split-string path-from-shell path-separator)))) (when (equal system-type 'darwin) (set-exec-path-from-shell-PATH)) 
Как бы я запустил это через терминал? CodeKingPlusPlus 11 лет назад 0
Как бы я скомпилировал tex-файл через терминал? Также я импортировал пути SHELL в переменную exec-path, но ничего не изменилось. Почему мы все равно хотим, чтобы пути SHELL входили в `exec-path`? CodeKingPlusPlus 11 лет назад 0
Ю Чжу, вероятно, предполагает, что если вы наберете echo $ PATH из терминала, то он будет включать путь к вашей установке macports, которая происходит через обычную установку macports (или homebrew или mactex) - он изменяет bash_profile или профиль в домашнем каталоге пользователя. Я решил удалить это и иметь немного больше контроля, когда материал macports доступен для других программ. lawlist 11 лет назад 0
Обычно это только один вопрос на клиента. В вашем случае, просто обойти проблему первоначальной установки - ваш самый важный вопрос. Как только вы решите это, вы должны открыть новую ветку / вопрос по любой другой проблеме. Я использую latexmk.pl в сочетании с AUCTex - учитывая, что latexmk.pl работает через терминал без AUCTex, я не вижу причин, почему вы не могли бы сделать это через терминал в сочетании с Emacs. lawlist 11 лет назад 0

Похожие вопросы