Меню:


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

RefTeX написан Carsten Dominik, и в настоящее время, им и сопровождается. Вы можете найти дистрибутив пакета и прочую информацию относящуюся к нему на сайте автора.

Работа с пакетом

В целом, работу с пакетом RefTeX можно разделить на несколько больших частей:

Команды могут выполняться с помощью привязок клавиш, стандартных средств выполнения команд, или используя меню Ref, которое появляется при использовании пакета RefTeX.

Общие команды и привязки клавиш

Все буфера, в которых происходит работа, имеют привязки клавиш, которые работают сходным образом:

Работа с таблицами оглавлений

Получить таблицу оглавления можно получить с помощью сочетания клавиш C-c =. Таблица отображается в отдельном буфере, который называется *toc*. По умолчанию, в этом буфере отображается только список разделов документа, однако, используя клавиши l и i, вы легко можете получить список всех меток и вхождения индексов в документе. Перемещаясь по буферу пользователь может быстро переходить к нужным разделам документа.

Для работы с содержимым буфера используется набор клавиш. Кроме стандартных клавиш, перечисленных в разделе общие команды, пользователю доступны следующие команды:

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

Работа с метками

Мы можем рассматривать работу с пометками с двух сторон — создание меток, и их использование.

Для создания метки использует сочетание клавиш C-c ( (или команда reftex-label). В зависимости от контекста, RefTeX может адаптировать метку к текущему контексту. Обычно к имени метки добавляется небольшой префикс, который позволяет отличать метки для картинок, от меток для таблиц и т.п. Способ создания меток может изменяться в зависимости от значения переменной reftex-insert-label-flags, который мы рассмотрим в разделе Настройка..

Для того, чтобы сослаться на метку, используется сочетание клавиш C-c ) (или команда reftex-reference). Также как и при вставке метки, RefTeX пытается вычислить контекст в котором используется ссылка, и вставить часть имени. При вставке имени метки вы можете использовать буфер со списком определенных в документе меток. Работа с буфером аналогична работе с буфером, содержащим оглавление документа. Однако, в отличии от оглавления документа, вы можете ссылаться на несколько меток, помечая их с помощью клавиши m, и затем используя клавишу RET при окончании выбора.

RefTeX распознает большое количество окружений LaTeX, как входящих в стандартный набор окружений, так и в разные, не совсем стандартные окружения. Полный их список имеется в руководстве к пакету. Кроме этого, вы можете заставить RefTeX распознавать ваши собственные окружения. Об этом вы можете прочитать в разделе "Defining Label Environments", руководства по RefTeX. Также, RefTeX умеет ссылаться на метки, определенные в других документах, работая совместно со стилем LaTeX, который называется xr, и учитывать возможности, предоставляемые пакетами varioref и fancyref.

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

Кроме вышеперечисленных команд, в буфере работы с метками определены команды, которые контролируют отображаемую информацию (значения по умолчанию для этих настроек хранятся в переменной reftex-label-menu-flags):

Работа с ссылками на литературу и базами данных BibTeX

Ссылки на литературу создаются в LaTeX с помощью команды \cite или ее аналогов. Ссылки могут быть определены в базах данных BibTeX, или указаны явно в документе.

Создание ссылки на литературу производится с помощью команды reftex-citation (сочетание клавиш C-c [). При выполнении данной команды, она запросит у пользователя регулярное выражение, которое будет использоваться при поиске по базам данных. Поиск производится по файлам в текущем каталоге, а также по файлам, находящимся в путях, перечисленных в переменной среды BIBINPUTS.

После выполнения поиска, его результаты будут представлены в виде буфера, аналогичного буферу результатов вставки ссылок на метки:

RefTeX поддерживает использование разных стилей ссылок на литературу. Кроме стандартных механизмов LaTeX, пакет поддерживает работу с дополнительными модулями расширения LaTeX, такими как natbib, harvard и т.п. Текущий используемый стиль определяется переменной reftex-cite-format, которой вы можете присвоить нужное вам значение.

Работа с индексами

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

До начала работы с индексами, вы должны сообщить RefTeX о том, какой стиль индексов вы будете использовать. При использовании AUCTeX, такая настройка будет выполнена автоматически, однако вы можете выполнить ее и вручную используя пункт Index Style меню Ref или настраивая переменную reftex-index-macros.

Создание записи индекса для текущего слова или записи, используется команда reftex-index-selection-or-word (сочетание C-c /). По умолчанию, для индекса используется макрос заданный переменной reftex-index-default-macro (по умолчанию это \index). Используя префиксный аргумент вы можете изменять содержимое индексной записи перед его вставкой (один префиксный аргумент) или имя макроса индексации (два префиксных аргумента). Вставка общего макроса индексации производится с помощью команды reftex-index (сочетание клавиш C-c <). При выполнении этой команды, у пользователя запросят имя макроса и его аргументы.

Для облегчения работы пользователя, RefTeX ведет отдельный файл, в котором собираются фразы для последующего индексирования. Вы можете попасть в (или создать его) этот файл с помощью команды reftex-index-visit-phrases-buffer (сочетание C-c |). Файл имеет то же имя, что и основной файл документа, но имеет расширение .rip. Фразы для индексирования могут быть собраны во время работы, используя команду reftex-index-phrase-selection-or-word (C-c \), которая копирует выделение или текущее слово в буфер фраз. При выполнении этой команды, пользователь попадает в буфер фраз, так что он может изменить скопированное значение, и покинуть этот буфер можно с помощью сочетания клавиш C-c C-c, которое вызывает команду reftex-index-phrases-save-and-return.

Компиляция и отображение индекса производится с помощью команды reftex-display-index, которая привязана к сочетанию C-c >. Принципы работы в отображенном буфере аналогичны тем, что применяются при работе с другими буферами — меток, ссылок на литературу и оглавления. Однако, пользуясь данным буфером, пользователь может изменять индексные записи с помощью следующих команд:

Пользователь может управлять отображением информации в буфере с помощью следующих команд:

При работе с буфером индексов, пакет определяет дополнительные команды, которых нет в других буферах:

Прочие команды

С помощью пакета RefTeX вы также можете получать информацию о том, из каких частей документа ссылаются на данный объект. Это выполняется с помощью команды reftex-view-crossref, которая привязана к сочетанию клавиш C-c &. Пользователь также может использовать привязку S-Mouse2 для аргумента макроса, и пакет выполнит переход на объект, соответствующий текущему макросу.

#customize

Установка и настройка

RefTeX поставляется в составе GNU Emacs начиная с версии 20.2 и в составе XEmacs начиная с версии 19.16 и всех XEmacs версии 20. Для XEmacs версии 21 существует пакет, который доступен с основного сайта XEmacs. Так что ручная установка пакета не потребуется. Настройка пакета достаточна проста — вам как минимум надо установить хуки для основных режимов работы с LaTeX, например, с помощью такого кода:

(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
(add-hook 'latex-mode-hook 'turn-on-reftex)

первая строка устанавливает хук для режима, предоставляемого пакетом AUCTeX, а вторая для стандартного режима идущего в составе Emacs. Настройка остальных параметров может быть осуществлена используя команду M-x customize-group reftex. Для интеграции с AUCTeX будет полезным установить переменную reftex-plug-into-AUCTeX в истинное значение (с помощью команды M-x customize-variable, или с помощью кода на Emacs Lisp). Для работы с документами состоящими из нескольких файлов, желательно установить в истинное значение несколько переменных, которые позволяют выполнять кеширование информации, а также работы с неполными документами:

(setq reftex-enable-partial-scans t)
(setq reftex-save-parse-info t)
(setq reftex-use-multiple-selection-buffers t)

Вы можете настроить эти и другие переменные используя стандартные средства настойки Emacs. Группа настройки называется reftex.

Для более точной настройки пакета, в нем определяется два хука — reftex-load-hook и reftex-mode-hook. Команды первого хука выполняются при загрузке пакета, а команды второго — при включении режима reftex-mode.

По умолчанию, RefTeX настроен для работы с английским языком. Для его использования с другими языками, пользователю надо знакомиться с содержимым раздела `Language Support' руководства по RefTeX.

Возможные проблемы и их решение

Несмотря на достаточно хорошую реализацию, иногда при работе с данным пакетом могут возникать различные проблемы, которые часто имеют решения, но требуют некоторых изменений в оформлении кода или подходу к работе с LaTeX. Для своей нормальной работы пакет требует от пользователя, чтобы он следовал некоторым правилам оформления документов. Так, команды \include, \bibliography, \input и \section должны быть первыми командами на строке, не считая пробельных символов.

В своей работе RefTeX анализирует весь текст, включая комментарии, поэтому если у вас есть закомментированные блоки с определением меток, то RefTeX может отказать вам в создании меток с существующими именами. Иногда при работе с RefTeX могут возникать проблемы связанные с замедлением работы. Для предотвращения этого, существует несколько советов, которые полностью перечислены в руководстве по RefTeX.

Last change: 05.03.2013 16:54

blog comments powered by Disqus