Como gerenciar arquivos bibliográficos com um VCS enquanto eles são usados ​​por um programa externo?

Como gerenciar arquivos bibliográficos com um VCS enquanto eles são usados ​​por um programa externo?

Eu uso o Mendeley para organizar citações. Ele exporta um .bibarquivo automaticamente para uma pasta no meu Mac.

Também tenho outro .bibarquivo que utilizo para outras citações não armazenadas no Mendeley (principalmente sites). Este arquivo é armazenado em uma pasta contendo todos os meus projetos LaTeX em pastas separadas.

A razão pela qual os .bibarquivos são armazenados separados do projeto LaTeX é que vários projetos usam as mesmas citações e desta forma só tenho que manter um .bibarquivo (o outro é mantido pelo Mendeley).

Inspirado pora pergunta no VCSAdicionei meu projeto LaTeX atual ao bitbucket.org usando git. É um diretório que contém meus .texarquivos e imagens,nãoo .bibarquivo.

No meu main.texincluo as duas bibliografias da seguinte forma:

\bibliography{~/Documents/Dropbox/Mendeley/library,../other_refs}

Meu objetivo agora é tornar o repositório independente, para que alguém possa simplesmente cloná-lo e compilar o documento LaTeX.

Como meus .bibarquivos não estão no repositório, como posso conseguir isso?
Links simbólicos não são uma opçãojá que o git não segue mais links simbólicos.

Responder1

Acabei mudando de natbibpara biblatex+ biber. Este último suporta o \addbibresources[location=remote]comando que pode usar um link para um .bibarquivo como entrada.

\bibliography{~/Documents/Dropbox/Mendeley/library,../other_refs}

tornou-se:

\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

Agora é realizada uma verificação se os .bibarquivos locais estão presentes. Nesse caso, ele apenas os utiliza; caso contrário, baixa os .bibarquivos do Dropbox, onde os disponibilizei publicamente (os links mostrados aqui não são os links reais).

Responder2

Resolvi o problema copiando o babador para a pasta local usando um make-file (chamado pelo latexmk). Dessa forma, você também terá a versão correta em seu repositório. Um dos principais problemas que tive com o Mendely foi que a ordem das entradas muda toda vez que o arquivo é gravado. Então estendi o Makefile para executá-lo bibtool. Meu Makefile é um pouco mais complexo, mas para você se resumiria a:

PROJECT.bib:~/Documents/Dropbox/Mendeley/library
        cat $< | bibtool -o $@ -r ./bib.rsc

E o bib.rsc parece

resource {sort_fld.rsc}
sort                     = on
preserve.keys            = on
preserve.key.case        = on

informação relacionada