Как управлять файлами библиографии с помощью VCS, пока они используются внешней программой?

Как управлять файлами библиографии с помощью VCS, пока они используются внешней программой?

Я использую 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

Связанный контент