Skip to content

The bibcloud LaTeX utility (and other related LaTeX tools)

Notifications You must be signed in to change notification settings

epfl-dcsl/bibcloud

Repository files navigation

bibcloud

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)

Setup

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

the main LaTeX .tex file

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.

Creating citations using dblp-alias.txt

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.

Makefile

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 $@

Running bibcloud

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

Source code control

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

License

bibcloud is available under a BSD-style license (see bibcloud.py)

(c) EPFL

that's all, folks.

About

The bibcloud LaTeX utility (and other related LaTeX tools)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published