
Я использую Mendeley для организации цитат. Он .bib
автоматически экспортирует файл в папку на моем Mac.
У меня также есть другой .bib
файл, который я использую для других цитат, не хранящихся в Mendeley (в основном веб-сайты). Этот файл хранится в папке, содержащей все мои проекты LaTeX в отдельных папках.
Причина, по которой .bib
файлы хранятся отдельно от проекта LaTeX, заключается в том, что несколько проектов используют одни и те же ссылки, и таким образом мне приходится поддерживать только один .bib
файл (другой поддерживается Mendeley).
Вдохновленвопрос по VCSЯ добавил свой текущий проект LaTeX на bitbucket.org с помощью git. Это каталог, содержащий мои .tex
файлы и изображения,нетфайл .bib
.
В свою работу main.tex
я включил следующие две библиографии:
\bibliography{~/Documents/Dropbox/Mendeley/library,../other_refs}
Теперь моя цель — сделать репозиторий автономным, чтобы любой мог просто клонировать его и скомпилировать документ LaTeX.
Как мне этого добиться, если моих .bib
файлов нет в репозитории?
Символические ссылки не подходятпоскольку git больше не следует по символическим ссылкам.
решение1
Я закончил переключение с natbib
на biblatex
+ biber
. Последний поддерживает \addbibresources[location=remote]
команду, которая может использовать ссылку на .bib
файл в качестве входных данных.
\bibliography{~/Documents/Dropbox/Mendeley/library,../other_refs}
стал:
\IfFileExists{../thesis_refs.bib}
{
\addbibresource{~/Documents/Dropbox/Mendeley/library.bib}
\addbibresource{../thesis_refs.bib}
}
{
\addbibresource[location=remote,type=file]{https://dl.dropboxusercontent.com/s/library.bib}
\addbibresource[location=remote,type=file]{https://dl.dropboxusercontent.com/s/thesis_refs.bib}
}
\printbibliography
Теперь выполняется проверка .bib
наличия локальных файлов. Если да, то он просто использует их, если нет, то загружает файлы .bib
из Dropbox, где я сделал их общедоступными (ссылки, показанные здесь, не являются фактическими ссылками).
решение2
Я решил проблему, скопировав bib в локальную папку с помощью make-файла (вызываемого latexmk). Таким образом, у вас также будет правильная версия в вашем репозитории. Одной из главных проблем, с которой я столкнулся с Mendely, было то, что порядок записей менялся каждый раз при записи файла. Поэтому я расширил Makefile, чтобы запустить его через bibtool
. Мой Makefile немного сложнее, но для вас он сведется к следующему:
PROJECT.bib:~/Documents/Dropbox/Mendeley/library
cat $< | bibtool -o $@ -r ./bib.rsc
А bib.rsc выглядит так
resource {sort_fld.rsc}
sort = on
preserve.keys = on
preserve.key.case = on