Содержание


Работа в LaTeX. Текстовые редакторы LaTeX

Comments

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

Текстовые редакторы используются не только для создания LaTeX-файлов, но и для программирования, написания сценариев оболочки и т.д., поэтому они чаще всего являются независимыми продуктами, существующими отдельно от LaTeX. Конечно, вы можете набирать текст в любом текстовом редакторе, но если выбрать действительно удобный редактор, то этот процесс значительно упростится.

Классификация текстовых редакторов

LaTeX редакторы можно разделить на следующие категории:

  • текстовые редакторы общего назначения с поддержкой LaTeX (Emacs, vim, geany, Eclipse, Notepad++, TextMate, Sublime Text и т.д.);
  • специализированные текстовые LaTeX-редакторы (TeXstudio, Texmaker, gummi, Kile, TexShop, TeXnicCenter, WinEdt и т.д.);
  • визуальные редакторы (LyX, TeXmacs и BaKoMa TeX Word);
  • Web-ориентированные (online) редакторы (ShareLaTeX, LaTeX Lab, writeLaTeX, Papeeria, Verboses и т.д.);
  • генераторы отчётов (Sweave, knitr).

Уровень поддержки LaTeX в этих редакторах варьируется от простой подсветки синтаксиса и вставки команд LaTeX до автоматической компиляции сложных проектов, вставки ссылок на имеющиеся метки, работы с библиографией, а некоторые редакторы также обеспечивают быструю визуализацию сделанных изменений.

Emacs

Говорят, что существуют всего два текстовых редактора: Emacs и vim (некоторые, правда, считают только Emacs единственным достойным текстовым редактором). Emacs — это действительно удобный текстовый редактор с множеством возможностей. Большинство часто используемых команд дублируются в выпадающих меню вместе с подсказками, какой клавиатурной комбинацией их можно вызвать напрямую. Поэтому, при частом использовании команды пальцы со временем сами складываются в нужную комбинацию.

Из особенностей Emacs следует отметить, что переключение раскладки клавиатуры он тоже носит с собой, и для удобства следует пользоваться именно внутренним переключателем раскладки, который активируется сочетанием Ctrl +\.

Рисунок 1. Текстовый редактор Emacs c расширением AUCTeX
Текстовый редактор Emacs c расширением AUCTeX
Текстовый редактор Emacs c расширением AUCTeX

За поддержку LaTeX в Emacs отвечает расширение AUCTeX. При редактировании TeX-файла в окне редактора появляются два специализированных меню: LaTeX (вставка команд и окружений) и Command (операции с LaTeX-файлами). При использовании клавиатурных комбинаций имена команд или окружений дополняются по TAB, как это происходит в обычной командной оболочке типа bash. Расширение AUCTeX поддерживает крупные LaTeX-проекты, состоящие из множества файлов. Для этого в конце файлов проекта добавляется указание на головной файл, как показано в примере ниже (../BOOK.tex — относительный путь до главного файла проекта):

%%% Local Variables:
%%% mode: latex
%%% TeX-master: "../BOOK.tex"
%%% End:

В этом случае не нужно заботиться об отдельной компиляции головного файла, так как AUCTeX возьмёт эту задачу на себя.

При установке AUCTeX из стандартного репозитория дистрибутива Linux конфигурация Emacs будет автоматически обновлена, но это не всегда возможно, например, при локальной установке. Для включения AUCTeX в конфигурационный файл .emacs следует добавить следующие строчки:

(require 'tex-site)
(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)

Если ли вы предпочитаете использовать кавычки ёлочки, то в файл .emacs следует добавить их автоматическую вставку вместо стандартных кавычек ", как показано ниже

;; Автовставка ёлочек по нажатию клавиши "
(setq TeX-open-quote "«")
(setq TeX-close-quote "»")

За вставку ссылок и поиск меток/библиографических карточек, а также за формирование электронного оглавления для быстрого перемещения внутри структурированного проекта отвечает RefTeX (меню Ref):

;; reftex - ref, labels и т.д. в LaTeX
(add-hook 'LaTeX-mode-hook 'turn-on-reftex) ; with AUCTeX LaTeX mode
(setq reftex-plug-into-AUCTeX t) ;plug in AucTex

LaTeX используется для набора не только больших документов, но и кратких текстов, например, служебных записок. Поэтому следует добавить в файл .emacs такие строки, чтобы создаваемый с нуля файл сразу заполнялся простейшим шаблоном.

Листинг 1. Пример шаблона LaTeX-документа
;; Автовставка для пустого TeX файла
;;"% -*- mode: latex; TeX-master: \""
;;		(file-name-nondirectory f-name)
;;		"\"; -*-\n"
;;                "%Created: " (current-time-string) "\n"
(add-hook 'find-file-not-found-hooks 'AutoInsertLaTeXHeader)
(defun AutoInsertLaTeXHeader ()
  (let ((f-name (buffer-file-name)))
    (if (string-match "\\.tex$" f-name)
	(insert  "%% -*- coding: utf-8 -*-\n"
         "\\documentclass[a4paper,12pt]{scrartcl} \n"
         "\\usepackage[T2A]{fontenc}\n"
         "\\usepackage[utf8]{inputenc}\n"
         "\\usepackage[english,russian]{babel}\n"
         "\\usepackage{indentfirst}\n"
         "\\usepackage{misccorr}\n"
         "\\usepackage{microtype}\n"
         "\\usepackage{cmap}\n"
         "\\usepackage{graphicx}\n"
         "\\usepackage{amssymb}\n"
         "\\usepackage{amsmath}\n"
         "\\usepackage{ccaption}\n"
         "\\captiondelim{. }\n"
         "\\begin{document}\n\n\n"
         "\\end{document}\n"
         ))))

Дополнительную информацию по AUCTeX можно найти в поставляемой с ним документации. С этой документацией стоит ознакомиться хотя бы один раз, так как в ней содержится много советов и рекомендаций, способных облегчить набор текста.

Будет полезно настроить также программу для просмотра LaTeX файлов, которая будет использоваться по умолчанию. Я использую для этой цели утилиту okular, но существуют и другие доступные варианты. AUCTeX поддерживает обратный и прямой поиск, то есть синхронизацию просмотра с кодом по команде просмотра и вывод нужного фрагмента текста по клику в программе просмотра. Программу просмотра по умолчанию необходимо установить в настройках AUCTeX, куда можно попасть через меню LaTeX, далее Customize AUCTeX и Browse Options. Для реализации обратного поиска необходимо, чтобы его поддерживала сама программа просмотра (поэтому я и выбрал ocular обладающий такой возможностью). В этом случае в настройках программы достаточно указать текстовый редактор (т.е. Emacs).

Одним из компонентов AUCTeX является надстройка preview-latex, с помощью которой можно визуализировать формулы и картинки прямо по тексту, хотя мне она не кажется очень удобной.

В заключение стоит сказать, что Emacs — это в каком-то смысле философия, и, адаптировавшись к этому редактору, вы уже не захотите менять его на что-либо другое.

Vim

Сторонники Vim считают только его "правильным" текстовым редактором, отрицая, как саму "философию" Emacs, так и его практические возможности. Особенностью Vim является смена поведения при переключении его из командного режима в режим редактирования и обратно.

Рисунок 2. Текстовый редактор Vim
Текстовый редактор Vim
Текстовый редактор Vim

В случае Vim для работы с LaTeX можно использовать расширения Vim Latex-Suit и Automatic LaTeX Plugin for Vim.

Пакет макросов Vim Latex-Suit (vim-latexsuite в Debian) имеет более чем десятилетнюю историю и предоставляет пользователю удобные инструменты для вставки и дополнения команд/окружений, управления шаблонами, прямого и обратного поиска, а также компиляции документа без необходимости выхода из Vim. Перед использованием рекомендуется ознакомиться с документацией.

Альтернативный пакет Automatic LaTeX Plugin for Vim обладает примерно такой же функциональностью, как и Vim Latex-Suit, но дополнительно позволяет автоматически компилировать файл в случае его изменения.

Другие текстовые редакторы

Хотя многие пользователи признают только два редактора – Emacs и Vim (а точнее только какой либо один из двух), на самом деле существует множество других популярных текстовых редакторов:

  • для среды разработки Eclipse можно установить плагин TeXlipse;
  • среда разработки geany требует пакет GeanyLaTeX (geany-plugin-latex в Debian);
  • популярнейший редактор для Mac OS X TextMate нуждается в LaTeX bundle;
  • свободный редактор Notepad++ может использоваться и без дополнительных расширений, но правильная настройка может значительно улучшить его возможности в области поддержки LaTeX;
  • для редактора Sublime Text предлагается расширение LaTeXTools.

Любой сколько-нибудь популярный текстовый редактор рано или поздно начинает поддерживать LaTeX хотя бы на уровне подсветки синтаксиса.

Texmaker

Большинство опытных пользователей ещё, наверное, помнят, что такое кодировка текста, а кое-кто до сих пор использует восьмибитную кодировку вместо Unicode (обычно это связано с поддержкой устаревших приложений). Эта проблема имела место и в случае с LaTeX, так как на некоторых платформах долгое время не было качественного LaTeX-редактора со встроенной поддержкой Unicode. Таким редактором в начале XXI века стал Texmaker, который поддерживает Unicode и умеет всё, что нужно редактору LaTeX, собирается под все основные платформы и является свободным программным обеспечением.

Рисунок 3. Текстовый редактор Texmaker
Текстовый редактор Texmaker
Текстовый редактор Texmaker

TeXstudio

Преимуществом (или как считают некоторые – недостатком) свободного программного обеспечение является то, что кто угодно может создать собственную версию на основе известного и сформировавшегося продукта. Обычно, подобное "отпочкование" (англ. forking) происходит, когда часть разработчиков покидает основной проект и начинает создавать новый проект на основе имеющегося свободного кода. Чаще всего, подобные проекты быстро заканчиваются, но иногда получается что-то такое же замечательное, как TeXstudio – потомок Texmaker. И на данный момент популярность TeXstudio превышает популярность исходного проекта.

Рисунок 4. Текстовый редактор TeXstudio
Текстовый редактор TeXstudio
Текстовый редактор TeXstudio

Gummi

LaTeX-редактор LaTeX gummi (только для GNU/Linux) вряд ли годится для повседневного использования, но вполне может использоваться в обучающих целях. Основная идея этого проекта – это реализация "непрерывной компиляции" документа прямо время набора. Благодаря этому, набирая текст, можно сразу увидеть, как он меняется при добавлении новых конструкций.

Рисунок 5. Текстовый редактор gummi с поддержкой непрерывной компиляции
Текстовый редактор gummi с поддержкой непрерывной компиляции
Текстовый редактор gummi с поддержкой непрерывной компиляции

Другие LaTeX-редакторы

Существуют и другие редакторы для LaTeX, но мы уже не будем останавливаться на них, а только перечислим:

  • Kile на основе KDE;
  • TexShop только для Mac OS X;
  • TeXnicCenter только для MS Windows;
  • WinEdt – популярный коммерческий редактор для MS Windows.

Визуальные редакторы

Некоторые пользователи предпочитают редактировать документы в визуальном режиме, как это делается, например, в MS Word. Желание скрестить визуальное редактирование и качественный вывод LaTeX породило LyX. Этот редактор, хотя и имеет свой собственный формат документов, крайне тесно интегрирован с LaTeX. Кроме довольно качественного импорта/экспорта LyX позволяет вставлять LaTeX-фрагменты прямо в тело документа.

Рисунок 6. Визуальный текстовый WYSIWYM-редактор LyX
Визуальный текстовый WYSIWYM-редактор LyX
Визуальный текстовый WYSIWYM-редактор LyX

Текстовый процессор TeXmacs, как и LyX, имеет свой собственный формат для файлов документа. И к Emacs он также не имеет никакого отношения. От LaTeX TeXmacs взял только шрифты, поэтому для отображения всего содержимого документа, включая математику, используются качественные векторные LaTeX-шрифты.

TeXmacs ориентирован на набор математических текстов, обладает интерфейсами для доступа к различным системам компьютерной алгебры и статистики и поддерживает импорт/экспорт LaTeX-файлов.

Рисунок 7. Редактор TeXmacs с запущенной сессией Maxima.
Редактор TeXmacs с запущенной сессией Maxima.
Редактор TeXmacs с запущенной сессией Maxima.

Отдельно стоит упомянуть текстовый редактор BaKoMa TeX Word из коммерческого дистрибутива LaTeX BaKoMa TeX, который рассматривался в предыдущей статье. BaKoMa TeX Word является настоящим LaTeX-редактором, но имеет и интерактивную WISYWIG составляющую.

LaTeX в Web-браузере

Попытки перенести текстовые процессоры в Web постоянно натыкаются на сложности с реализацией необходимой функциональности. Так, удалось успешно реализовать простые редакторы документов по примеру Google Docs, но все они (включая Google Docs) значительно уступают offline-редакторам, например, MS Word. Однако значительным преимуществом таких online-решений является возможность совместной работы нескольких пользователей над общим документом.

В этом смысле мощь LaTeX, для реализации которой вовсе не требуется сложный интерфейс, пришлась весьма кстати. Поэтому в Интернет появилось множество коммерческих и демонстрационных сервисов подобного рода, например:

  • ShareLaTeX — коммерческий сервис со свободным исходным кодом и бесплатной регистрацией, количество проектов не ограничено, но ограничено число участников для каждого проекта;
  • LaTeX Lab является свободной реализацией редактора LaTeX для Google Docs, изначально требует настройки и имеет проблемы с отображением кириллицы;
  • writeLaTeX — коммерческий продукт с поддержкой неограниченного числа проектов, но с ограничением на объём места для хранения документов и число файлов в одном проекте;
  • Papeeria — коммерческий продукт с поддержкой неограниченного числа публичных проектов, количество приватных проектов ограничено;
  • Verboses — коммерческий продукт с бесплатными мобильными приложениями.
Рисунок 8. Online-редактор LaTeX Lab.
Online-редактор LaTeX Lab.
Online-редактор LaTeX Lab.
Рисунок 9. Online-редактор writeLaTeX.
Online-редактор writeLaTeX.
Online-редактор writeLaTeX.

Генераторы отчётов

Платформа LaTeX довольно легко интегрируется с различными системами для подготовки отчётов. R — это язык для обработки статистических данных и один из самых востребованных инструментов для профессиональных статистиков. Дополнительную информацию о нём можно получить в цикле статей Анализ данных с R. Там же приведены примеры использования пакета Sweave, который позволяет получить статические расчёты и картинки в виде LaTeX-файла. Современной альтернативой Sweave является пакет knitr.

Заключение

Хотя LaTeX полностью берёт на себя вопросы форматирования и подготовки документа к печати, открытым остаётся вопрос – каким способом удобнее и быстрее всего можно набирать TeX-файлы. В этой статье мы изучили различные редакторы, начиная от классического Emacs и заканчивая online-редакторами, которые можно использовать для работы с файлами LaTeX. Количество доступных редакторов очень велико, и у каждого есть свои сильные и слабые стороны, поэтому вы всегда сможете выбрать вариант, наиболее подходящий для решения поставленной задачи.

Но после выбора редактора, важно потратить время на изучение его документации, чтобы превратить его в действительно мощный рабочий инструмент.


Ресурсы для скачивания


Похожие темы


Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Open source
ArticleID=978535
ArticleTitle=Работа в LaTeX. Текстовые редакторы LaTeX
publish-date=07242014