Using Pybtex instead of BibTeX
Pybtex is compatible with BibTeX — just type pybtex instead of bibtex:
latex foo pybtex foo latex foo latex foo
Unlike BibTeX, Pybtex supports multiple bibliography data formats. If you run
pybtex -f bibtexml foo
Pybtex will read bibliography data in BibTeXML format from foo.bibtexml file instead of foo.bib.
Using Pybtex with (experimental) pythonic bibliography styles
Pybtex supports bibliography styles written in Python, although this feature is still in development. If you want to give it a try, first examine the sources in the pybtex/style subdirectory, then run:
pybtex -e pybtex foo
As of now the only pythonic style available is pybtex/style/formatting/unsrt.py. It is a partial and very incomplete port of unsrt.bst.
Pythonic styles are markup-independent, it is possible to format the bibliography as HTML or plain text:
pybtex -e pybtex -b html foo pybtex -e pybtex -b plaintext foo
Label and name styes are configurable:
pybtex -e pybtex --label-style number --name-style last_first foo
Label and name styles are defined in pybtex/style/labels.py and pybtex/style/names.py, look there for details.
Using Pybtex as a bibliography files converter
Pybtex has a simple pybtex-convert utility, which can convert bibliography files between supported formats:
pybtex-convert foo.bib foo.yaml
The conversion is not always lossless due to limitations of storage formats:
- Native BibTeX format stores personal names as single strings, while BibTexML and Pybtex' YAML format store first name, last name, and other name parts seprately.
- BibTeXML format does not support LaTeX preambles.
- The order of keys is not preserved during the conversion (this may be fixed some day).
Using Pybtex programmatically
Using the BibTeX parser
>>> from pybtex.database.input import bibtex >>> parser = bibtex.Parser() >>> bib_data = parser.parse_file('examples/foo.bib') >>> bib_data.entries.keys() [u'ruckenstein-diffusion', u'viktorov-metodoj', u'test-inbook', u'test-booklet'] >>> print bib_data.entries['ruckenstein-diffusion'].fields['title'] Predicting the Diffusion Coefficient in Supercritical Fluids
(to be continued)