LaTeX в Emacs

Полное руководство по настройке LaTeX в Emacs

Установка и базовая настройка

1. Установка необходимых пакетов

Добавьте в ваш .emacs или init.el:

(use-package tex
  :ensure auctex
  :mode ("\\.tex\\'" . latex-mode)
  :config
  (setq TeX-auto-save t
        TeX-parse-self t
        TeX-save-query nil
        TeX-PDF-mode t))
        
(use-package company-auctex
  :ensure t
  :after (company tex))
  
(use-package reftex
  :ensure t
  :config
  (add-hook 'LaTeX-mode-hook 'turn-on-reftex))

2. Системные зависимости

Убедитесь, что установлены:

  • TeX-дистрибутив (TeX Live или MiKTeX)
  • latexmk (для автоматической сборки)
  • chktex (для проверки стиля)

Основные горячие клавиши

Общие команды

Комбинация Описание
C-c C-c Компиляция документа
C-c C-v Просмотр PDF
C-c C-e Добавить окружение
C-c C-s Добавить section-like команду
C-c C-m Добавить макрос
C-c C-k Удалить макрос/окружение
C-c C-w Проверить орфографию

Навигация

Комбинация Описание
C-c = Показать структуру документа
C-c [ Перейти к следующей метке
C-c ] Перейти к предыдущей метке
C-c & Перейти к месту ссылки

RefTeX (ссылки и библиография)

Комбинация Описание
C-c ( Вставить ссылку
C-c ) Создать метку
C-c [ Вставить ссылку на библиографию
C-c ] Вставить citation
C-c / Поиск по меткам

Настройка рабочего процесса

1. Конфигурация компилятора

(setq TeX-engine 'xetex)  ;; Использовать XeLaTeX
(setq TeX-view-program-selection '((output-pdf "PDF Viewer")))
(setq TeX-view-program-list '(("PDF Viewer" "evince %o")))

2. Автоматическая сборка

(setq TeX-command-default "latexmk")
(setq TeX-command-extra-options "-pdf -shell-escape -synctex=1")

3. Проверка стиля

(add-hook 'LaTeX-mode-hook
          (lambda ()
            (flycheck-mode)
            (setq flycheck-latex-checker 'chktex)))

Продвинутые настройки

1. Интеллектуальное завершение кода

(use-package company-auctex
  :ensure t
  :config
  (company-auctex-init))

2. Подсветка синтаксиса

(use-package latex-preview-pane
  :ensure t
  :config
  (latex-preview-pane-enable))

3. Шаблоны документов

(use-package yasnippet
  :ensure t
  :config
  (yas-global-mode 1))
  
(use-package yasnippet-snippets
  :ensure t)

Рабочий процесс с LaTeX-документом

  1. Создайте новый файл .tex или откройте существующий
  2. Начните вводить \documentclass - сработает автодополнение
  3. Используйте C-c C-e для добавления окружений
  4. Для вставки ссылок:
    • Создайте метку: C-c )
    • Вставьте ссылку: C-c (
  5. Для компиляции: C-c C-c (выберите команду, обычно latexmk)
  6. Для просмотра PDF: C-c C-v

Интеграция с другими инструментами

1. Работа с библиографией (BibTeX)

(setq reftex-plug-into-AUCTeX t)

Команды:

  • C-c [ - вставить ссылку на библиографию
  • C-c C-m bib RET - вставить новый элемент библиографии

2. Просмотр ошибок

Используйте M-x flycheck-list-errors для просмотра списка ошибок.

3. Синхронизация с PDF

(setq TeX-source-correlate-mode t
      TeX-source-correlate-start-server t)

Для перехода из Emacs в PDF и обратно:

  • В Emacs: C-c C-g
  • В PDF-просмотрщике: Ctrl+клик

Полезные советы

  1. Для многофайловых проектов используйте \include и \input
  2. Настройте шаблоны для часто используемых документов
  3. Используйте yasnippet для быстрой вставки структурных элементов
  4. Для математических формул используйте C-c C-m и выберите нужный символ

Решение проблем

1. Компиляция не работает

Проверьте:

  • Установлен ли latexmk: latexmk --version
  • Правильно ли указан путь к TeX-дистрибутиву

2. Нет автодополнения

Убедитесь, что:

  • Пакет company-auctex установлен и загружен
  • Включен режим company-mode

3. PDF не синхронизируется с исходником

Проверьте настройки:

(setq TeX-source-correlate-mode t)

Альтернативные пакеты

  1. AUCTeX - основной пакет для работы с LaTeX
  2. cdlatex - быстрый ввод математических выражений
  3. prettify-symbols-mode - отображение символов (например, \alpha как α)
  4. lsp-latex - Language Server Protocol для LaTeX (требуется texlab)