bibcloud is a tool to simplify the management of your references for your latex papers by automatically downloading references from the DBLP online database so that you don't have to, and then to convert the DBLP format into the specific bibtex/latex format for your purpose (which is the bigger problem actually).
Use at your own risk. E. Bugnion, 2016 (edouard.bugnion@epfl.ch)
Download bibcloud. The "make" step is optional; it generates the conference files.
git clone https:github.com/epfl-dcsl/bibcloud
cd bibcloud
make
These instructions assume that your hiearchy looks as follows:
/me
/me/bibcloud <-- this repo
/me/papers/thispaper <-- your LaTeX project
First, include the bibliography as follows:
\bibliography{../../bibcloud/gen-abbrev,dblp,misc}
if you want "long conference names" or
\bibliography{../../bibcloud/gen-abbrev-short,dblp,misc}
where
-
gen-abbrev.bib and gen-abbrev-short.bib are the generated file in the biblcoud repo (this repo) that contain the definition of relevant conference names.
-
dblp.bib is self-generated by running bibcloud
-
misc.bib is for the references that are not under DBLP, e.g. tech report, URL, papers from weird / second tier conferences, or about to be published. Ideally as short as possible.
There are two ways in which you can cite from DBLP: either use the full DBLP key within your text, or use an alias specified in the file dblp-alias.txt in the project repository
Example 1 -- full key in the text, e.g. \cite{DBLP:journals/cacm/PopekG74}
or \cite{DBLP:conf/sosp/BarhamDFHHHN03}
Example 2 -- with an alias in dblp-alias.txt
disco DBLP:journals/tocs/BugnionDGR97
then in the text, simply \cite{disco}
.
IMPORTANT NOTE: for any given reference, you MUST choose whether to use an alias or not. You can't mix both usage as it would create duplicate entries. The bibcloud program will identify such a condition and fail execution.
The universal Makefile for LaTeX projects:
PAPER=main
BIBCLOUDDIR=../../bibcloud
all: $(PAPER).pdf
clean:
rm -f $(PAPER).pdf prepress.pdf *.aux *.fdb_latexmk *.log *.bbl *.blg \
*~ *.dvi *.vrb *.nav *.snm texput.* *.synctex.gz
latexmk -C $(PAPER).tex
bib:
$(BIBCLOUDDIR)/bibcloud.py $(PAPER)
bibtex $(PAPER)
$(PAPER).pdf:
latexmk -pdf -latexoption=-halt-on-error \
-latexoption=-file-line-error \
-latexoption=-synctex=1 $(PAPER).tex \
&& touch $(PAPER).dvi || ! rm -f $@
bibcloud only works if pdflatex
has run at least once and the file $(PAPER).aux
exists. pdflatex
can only run successfully if dblp.bib exists. So bootstrap by creating an empty dblp.bib
file
then, simply type
make
to compile your PDF document. If there are missing references, then type
make bib
make
I recommend the following:
- Put dblp.bib under git. That way, different collaborators will share the updated dblp.bib
- Do not put the hidden cache under revision control.... it's best to have the ability to download this fresh (at least, that's my take on it). To make it silent, add the following line to .gitignore
.bibcloud
bibcloud is available under a BSD-style license (see bibcloud.py)
(c) EPFL
that's all, folks.