Emacs. Работа с библиографией. helm-bibtex
Пакет для работы с библиографией helm-bibtex.
Содержание
1 Общая информация
- Бэкендом является
bibtex-completion
. - Фронтенды:
helm-bibtex
иivy-bibtex
. - Репозиторий: https://github.com/tmalsburg/helm-bibtex.
2 Форматы цитирования
2.1 Форматы цитирования по умолчанию
- Bibtex-completion создает цитаты на основе основного режима, в котором цитата вставляется.
- По умолчанию вставляются следующие типы ссылок:
- org-mode: ссылка для открытия записи в Ebib;
- latex-mode: команда цитирования LaTeX;
- markdown-mode: команда цитирования Pandoc;
- python-mode: команда цитирования sphinxcontrib-bibtex;
- rst-mode: команда цитирования sphinxcontrib-bibtex;
- другие режимы: вставка ключа BibTeX.
2.2 Изменение формата цитирования
- При использовании org-cite (см. Emacs. Работа с библиографией. Org-cite) можно переключиться на соответствующий формат цитирования для org-файлов:
3 Основные операции
- Пакет позволяет вставлять ссылки в файл.
- При выборе пункта библиографии есть возможность:
- перейти по URL-адресу;
- открыть PDF-файл;
- вставить запись в качестве цитаты;
- вставить запись BibTeX.
- Вставляет команды цитирования LaTeX, ссылки Ebib или ссылки Pandoc, записи BibTeX или ссылки в виде простого текста в точку, прикрепляйте PDF-файлы к электронным письмам.
- Поддержка ведения заметок.
- Быстрый доступ к онлайн-библиографическим базам данных, таким как Pubmed, arXiv, Google Scholar, Библиотека Конгресса и т. д.
- Импортируйте записи BibTeX из CrossRef и других источников.
4 Настройка
4.1 Поля, используемые для поиска
- Поля по умолчанию, используемые для поиска: author, title, year, BibTeX key, entry type.
- Переменная
bibtex-completion-addition-search-fields
может использоваться для расширения этого списка. - Добавим ключевые слова к списку поиска:
1(setq bibtex-completion-additional-search-fields '(keywords))
4.2 Настройка результатов поиска
- Настройка представления результатов поиска делается в переменной
bibtex-completion-display-formats
. - По умолчанию она имеет вид:
1'((t . "${author:36} ${title:*} ${year:4} ${=has-pdf=:1}${=has-note=:1} ${=type=:7}"))
- Числа указывают, сколько символов зарезервировано для соответствующего поля.
- Символ
*
означает, что это поле занимает всё оставшееся место. - Можно задать разный формат вывода для разных типов записей:
1(setq bibtex-completion-display-formats 2 '((article . "${=has-pdf=:1}${=has-note=:1} ${=type=:7} ${year:4} ${author:36} ${title:*} ${journal:40}") 3 (inbook . "${=has-pdf=:1}${=has-note=:1} ${=type=:7} ${year:4} ${author:36} ${title:*} Chapter ${chapter:32}") 4 (incollection . "${=has-pdf=:1}${=has-note=:1} ${=type=:7} ${year:4} ${author:36} ${title:*} ${booktitle:40}") 5 (inproceedings . "${=has-pdf=:1}${=has-note=:1} ${=type=:7} ${year:4} ${author:36} ${title:*} ${booktitle:40}") 6 (book . "${=has-pdf=:1}${=has-note=:1} ${=type=:7} ${year:4} ${author:36} ${title:*} ${subtitle:40} ${volume:2}") 7 (t . "${=has-pdf=:1}${=has-note=:1} ${=type=:7} ${year:4} ${author:36} ${title:*}")))
- Чтобы это работало, необходимо добавить
journal
иbooktitle
кbibtex-completion-additional-search-fields
:1(add-to-list 'bibtex-completion-additional-search-fields 'journal) 2(add-to-list 'bibtex-completion-additional-search-fields 'booktitle) 3(add-to-list 'bibtex-completion-additional-search-fields 'subtitle) 4(add-to-list 'bibtex-completion-additional-search-fields 'chapter) 5(add-to-list 'bibtex-completion-additional-search-fields 'volume)
5 Использование
5.1 Клавиши для поиска
- Будем считать, что общий префикс Helm —
C-c h
(см. Emacs. Автодополнение. Helm). C-c h b
: поиск в центральной и в локальной базах bib.C-c h B
: поиск в локальной базе bib.C-c h n
: поиска только среди записей, содержащих примечания.- Настройка проводится следующим образом:
5.2 Выбор действия
- Выделив пункт, необходимо нажать
C-z
. - Будет выдан список действий.
- Первым действием в списке будет действие по умолчанию.
- При нажатии
<return>
или<tab>
на записи будет выполнено действие по умолчанию.
5.3 Изменить доступные действия
- Нажатие
<enter>
на публикации запускает действие по умолчанию, которое открывает PDF-файл, связанный с публикацией, если она присутствует, или ее URL-адрес или DOI в противном случае. - Нажатие
<tab>
в helm-bibtex илиM-o
в ivy-bibtex вместо этого отображает меню действий со списком доступных действий. - Список всех доступных действий вместе с их функциями (это общие функции действий, для
helm-bibtex
имена функций начинаются сhelm-bibtex-
вместоbibtex-completion-
, а дляivy-bibtex
они начинаются сivy-bibtex-
):- Open PDF, URL or DOI:
bibtex-completion-open-any
- Open PDF file (if present):
bibtex-completion-open-pdf
- Open URL or DOI in browser:
bibtex-completion-open-url-or-doi
- Insert citation:
bibtex-completion-insert-citation
- Insert reference:
bibtex-completion-insert-reference
- Insert BibTeX key:
bibtex-completion-insert-key
- Insert BibTeX entry:
bibtex-completion-insert-bibtex
- Attach PDF to email:
bibtex-completion-add-PDF-attachment
- Edit notes:
bibtex-completion-edit-notes
- Show entry:
bibtex-completion-show-entry
- Add PDF to library:
bibtex-completion-add-pdf-to-library
- Open PDF, URL or DOI:
5.3.1 Helm-bibtex
- Список действий можно изменить с помощью команд
helm-add-action-to-source
иhelm-delete-action-from-source
. - Добавим новое действие
helm-bibtex-open-annotated-pdf
сразу после первого элемента в списке: - Если последний числовой аргумент в
helm-add-action-to-source
опущен, новое действие добавляется в конец списка. - Поскольку действие по умолчанию — это просто первая запись в списке действий, действие по умолчанию можно изменить, удалив действие и повторно вставив его вверху списка.
- Сделаем Вставить ключ BibTeX действием по умолчанию:
5.3.2 Ivy-bibtex
- Действие по умолчанию и дополнительные доступные действия задаются отдельно.
- Действие по умолчанию управляется переменными
ivy-bibtex-default-action
иivy-bibtex-default-multi-action
, причем последние предназначены для списков отмеченных записей. - Изменим действие по умолчанию на Вставить ключ BibTeX:
1(setq ivy-bibtex-default-action 'ivy-bibtex-insert-key)
- Установим действие по умолчанию для списков отмеченных записей на Вставить ключ BibTeX:
1(setq ivy-bibtex-default-multi-action 'ivy-bibtex-insert-key)
- Дополнительные действия задаются передачей в команду нужного списка действий
ivy-set-actions
. - Сохраним только два доступных действия в дополнение к одному по умолчанию:
- Буквы
p
иe
являются привязками клавиш для двух действий в меню действий. - Привязка клавиши
o
зарезервирована для действия по умолчанию. - Если вы хотите добавить новые действия только в конец списка действий, вы также можете использовать команду
ivy-add-actions
. - Добавим новое действие
ivy-bibtex-open-annotated-pdf
в конец списка действий:
5.4 Выбор нескольких записей
5.4.1 Helm-bibtex
- Запустите helm-bibtex.
- Введите поисковое выражение.
- Переместите курсор на соответствующую запись и введите
C-<space>
, чтобы отметить эту запись. - При желании измените свое поисковое выражение, отметьте другие записи.
- Нажмите
<return>
или<tab>
, чтобы выполнить действие для всех выбранных записей одновременно и выйти из helm-bibtex.
5.4.2 Ivy-bibtex
- Запустите ivy-bibtex.
- Введите поисковое выражение.
- Переместите курсор на соответствующую запись и введите
C-<space>
, чтобы отметить эту запись. - При желании измените свое поисковое выражение, отметьте больше записей.
- Нажмите
<return>
чтобы выполнить действие по умолчанию со всеми выбранными записями илиM-o
чтобы выбрать другое действие. - Нажмите
S-<space>
, чтобы снять пометку с отмеченной записи.