Git Product home page Git Product logo

bibcloud's Introduction

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 ([email protected])

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.

bibcloud's People

Contributors

edbugnion avatar samwhitlock avatar prekageo avatar marioskogias avatar aghosn avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.