BibTeX. Утилита Bibtool
2025-04-25
·
2 мин. для прочтения
BibTeX. Утилита Bibtool.
Содержание
1 Общая информация
- BibTool –— консольная утилита для работы с файлами BibTeX, предназначенная для автоматизации управления библиографическими базами данных.
- Сайт: https://www.gerd-neugebauer.de/software/TeX/BibTool/en/
- Репозиторий: https://github.com/ge-ne/bibtool
- CTAN: https://www.ctan.org/tex-archive/biblio/bibtex/utils/bibtool/
2 Установка
2.1 Gentoo
- В основном репозитории:
emerge bibtool
3 Основные операции
Сортировка записей
- Автоматическая сортировка библиографических записей по ключам, авторам, годам и другим параметрам.
- Поддержка прямого (
-s
) и обратного (-S
) порядка сортировки.bibtool -s input.bib -o sorted.bib
Удаление дубликатов
- Поиск и удаление повторяющихся записей по ключам или содержимому.
- Ресурс
check.double
для проверки дубликатов.bibtool -- 'check.double = on' input.bib
- Создание чистого файла без дубликатов:
bibtool -- 'check.double = on' -s input.bib -o clean.bib
Извлечение записей
- Фильтрация записей по ключам, авторам, годам или регулярным выражениям.
- Интеграция с
.aux
-файлами LaTeX для извлечения только используемых ссылок:bibtool -x main.aux -o extracted.bib
Генерация ключей
- Автоматическое создание ключей BibTeX в коротком (
-k
) или длинном (-K
) формате. - Настройка шаблонов ключей через ресурс
key.format
.bibtool -k input.bib -o new_keys.bib
- Автоматическое создание ключей BibTeX в коротком (
Проверка синтаксиса
- Обнаружение ошибок в структуре файлов (например, незакрытые скобки, некорректные поля).
- Валидация через ресурсы
validate
иcheck.required.fields
.
Объединение файлов
- Слияние нескольких
.bib
-файлов в один с устранением конфликтов.bibtool -i file1.bib -i file2.bib -o merged.bib
- Слияние нескольких
Поиск записей по ключевому слову:
bibtool -- 'select{title "network"}' input.bib -o filtered.bib
Объединение с сортировкой по годам:
bibtool -s -- 'sort.format = {%D(year)}' *.bib -o sorted_by_year.bib
4 Скрипты
- Для пакетной работы используются ресурсные файлы (
.rsc
):new.field.type author = AUTHOR key.format = {%-1n(author)}%Y%T