Установка AucTeX 1.86 поверх Emacs.app в OS X

9

Я пытаюсь установить AucTeX 1.86 поверх двоичного файла Emacs (версия 24.0.50) с сайта emacsformacosx.com. При первой попытке ./configureвыводит:

configure: error: Cannot find the texmf directory!
Please use --with-texmf-dir=dir to specify where the preview tex files go configure: error: ./configure failed for preview

Добавлю --with-texmf-dir=/usr/local/texlive/texmf-local, на что ./configureрадостно отвечает несколькими поздравлениями. Компилирую с глюком makeи sudo make installбез.

Я открываю .tex файл на Emacs и AucTeX не загружается. Я (load auctex.el nil t t)запускаю Cj в буфере * scratch * и выводим Emacs:

Debugger entered--Lisp error:(file-error "Cannot open load file" "auctex.el")

Что-то случилось. Я подумал, что Emacs не может найти файл, поэтому он не должен быть установлен там, где он должен был быть. Я отслеживаю большинство файлов AucTeX там /usr/share/emacs/site-lisp, где живет Emacs 22.1.

У меня было два варианта: 1. сообщить Emacs, где найти AucTeX (что я не знаю, как это сделать); 2. перекомпилируйте AucTeX с большим количеством опций конфигурации (которые казались более простыми).

Я решил перекомпилировать, после удаления всех файлов AucTeX из предыдущей установки. На этот раз я настраиваю источник, сообщая ему, где находится Emacs, с помощью:

./configure -with-emacs=/Applications/Emacs.app/Contents/MacOS/Emacs --with-lisp-dir=/Applications/Emacs.app/Contents/Resources/site-lisp --with-texmf-dir=/usr/local/texlive/texmf-local

На этот раз он жалуется:

`configure: error: Cannot locate lisp directory,`
`use  --with-lispdir, --datadir, or possibly --prefix to rectify this`

хотя я включил --with-lisp-dir=dirопцию. Если я достану его, он все равно будет жаловаться на невозможность найти каталог lisp. Похоже, AucTeX не нравится Emacs.app в папке «Программы».

Мой вопрос, как мне заставить это работать?

Рикардо
источник

Ответы:

10

Вот как я заставил Auctex работать с чистыми Emacs:

  1. Установите дистрибутив MacTeX
  2. Загрузите OS X emacs , поместите в/Applications
  3. Загрузить архив Auctex
  4. Перейдите в каталог Auctex, настройте его с помощью команды:

    ./configure --with-emacs=/Applications/Emacs.app/Contents/MacOS/Emacs --with-lispdir=/Applications/Emacs.app/Contents/Resources/site-lisp --with-texmf-dir=/usr/local/texlive/texmf-local
    
  5. Выполнение:

    make; sudo make install
    

    установить elispфайлы внутри Emacs.app, информационные файлы /usr/local/share/infoи т. д.

  6. Отредактируйте ваш ~/.emacsфайл для загрузки Auctex / preview-latex и укажите Emacs на ваши исполняемые файлы Latex:

    (setenv "PATH" (concat "/usr/texbin:/usr/local/bin:" (getenv "PATH")))
    (setq exec-path (append '("/usr/texbin" "/usr/local/bin") exec-path))
    (load "auctex.el" nil t t)
    (load "preview-latex.el" nil t t)
    
  7. Auctex и preview-latex теперь должны работать. Следует помнить одну вещь: в более старых версиях Auctex psпуть работает лучше, чем pdf; если изображения для предварительного просмотра латекса не отображаются с ошибкой «/ typecheck in --setfileposition--», попробуйте отключить «Создать PDF» через «Строка меню -> Команда -> Параметр TeXing».


Обновление : шаги (2--5) можно заменить менеджером пакетов Homebrew:

brew install emacs --cocoa
brew install auctex

Другие шаги все еще верны. Опция Emacs «Создать PDF» теперь работает для меня.

Киптон Баррос
источник
5

Из руководства Mac / GNUstep экземпляры Emacs, запущенные из Finder, не наследуют переменные окружения, поэтому их необходимо установить. /etc/pathи /etc/path.d/установит общесистемные переменные среды, но для того, чтобы они были доступны для GUI (экземпляры, запускаемые Finder), они должны быть установлены в ~/.MacOSX/environment.plistфайле.

Каталог и файл должны быть созданы пользователем. Как только это будет сделано, вставьте следующее (изменяя, где это необходимо) в ваш environment.plistфайл. Я получил это из сообщения в списке рассылки, найденном по адресу http://newsgroups.derkeiler.com/Archive/Comp/comp.text.tex/2009-12/msg00199.html .

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
<plist version="1.0">
<dict>
<key>PATH</key>
<string>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/texlive/2009basic/bin/universal-darwin</string>
</dict>
</plist>

AUCTeX должен вести себя хорошо сейчас.

Рикардо
источник
0

Чтобы загрузить AUCTeX, .emacsфайл необходимо изменить. Из руководства AUCTeX:

В Emacs (или если вы явно отключили использование системы пакетов), файлы запуска «auctex.el» и «preview-latex.el» могут уже находиться в каталоге «site-start.d /», если ваш Установка Emacs обеспечивает это. В этом случае они должны автоматически загружаться при запуске, и больше ничего не нужно делать. Если нет, то они, по крайней мере, должны были быть размещены где-нибудь на вашем пути загрузки. Затем вы можете загрузить их, разместив строки

(load "auctex.el" nil t t)

(load "preview-latex.el" nil t t)

в ваш файл инициализации.

Если вы явно использовали --with-lispdir, вам может потребоваться добавить указанный каталог в переменную load-path Emacs, добавив что-то вроде

(add-to-list 'load-path "~/elisp")

перед указанными выше строками в вашем файле запуска Emacs.

Там нет ~/elispкаталога в моей системе, поэтому я добавляю в каталог , указанный в конфигурации: (add-to-list 'load-path "/Applications/Emacs.app/Contents/Resources/site-lisp"). Похоже, это делает загрузку AUCTex при открытии .texфайла в Emacs. По некоторым причинам панель инструментов не включена по умолчанию.

Крючки AUCTeX теперь применяются. Тем не менее, при попытке латекс документа выходит с ошибкой:

/bin/sh: pdflatex: command not found

Кажется, это проблема $ PATH $.

Рикардо
источник