外部プログラムで使用されている参考文献ファイルを VCS で管理するにはどうすればよいですか?

外部プログラムで使用されている参考文献ファイルを VCS で管理するにはどうすればよいですか?

私は引用を整理するためにMendeleyを使用しています。これは.bibファイルを自動的にMacのフォルダにエクスポートします。

また、Mendeley に保存されていない他の引用 (主に Web サイト) に使用する別のファイルもあります.bib。このファイルは、すべての LaTeX プロジェクトを別々のフォルダーに格納したフォルダーに保存されます。

ファイルが LaTeX プロジェクトとは別に保存されている理由.bibは、複数のプロジェクトが同じ引用を使用するため、この方法では 1 つのファイルのみを維持すればよいからです.bib(もう 1 つは Mendeley によって維持されます)。

に触発されたVCSに関する質問.tex私は現在のLaTeXプロジェクトをgitを使ってbitbucket.orgに追加しました。これは私のファイルと画像を含むディレクトリです。ないファイル.bib

私の場合はmain.tex、次の 2 つの参考文献を記載しています。

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

私の現在の目標は、リポジトリを自己完結型にして、誰かがそれをクローンして LaTeX ドキュメントをコンパイルできるようにすることです。

.bibファイルがリポジトリにないので、どうすればこれを実現できますか?
シンボリックリンクはオプションではありませんgit はシンボリックリンクをたどらなくなったためです。

答え1

から+natbibへの切り替えを終了しました。後者は、ファイルへのリンクを入力として使用できるコマンドをサポートしています。biblatexbiber\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

私は、make-file (latexmk によって呼び出される) を使用して bib をローカル フォルダーにコピーすることで問題を解決しました。こうすることで、リポジトリにも正しいバージョンが存在します。Mendely で私が抱えていた主な問題の 1 つは、ファイルが書き込まれるたびにエントリの順序が変わることでした。そこで、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

関連情報