I have a BibTeX database with some big number of references which I use for work. When I need to send a document prepared using that database to somone I have two options: either send a full copy of the database (which I would not like to do), or copy all referenced entries from a large database to a smaller copy, and send that copy with a document. Are there any tools which would do this automatically?
BibTool is a command-line tool which allows you to perform various manipulations on
.bib files, including extracting all of the entries which are mentioned in a given
A reference manager such as JabRef will allow you to save selected entries from your entire .bib database to a new, smaller .bib file. JabRef also allows you to export to many other formats, such as XML, HTML, EndNote, and Harvard RTF.
I use a shell script called
bibexport: a tool to extract BibTeX entries out of .bib files. usage: .../bibexport [-h|v] [-n] [-b bst] [-a [-e file]...] [-o file] file... -a, --all export the entire .bib files -b, --bst specifies the .bst style file [default: export.bst] -e, --extra extra .bib files to be used (for crossrefs) -c, --crossref include entries that are crossref'd [default: yes] -n, --no-crossref don't include crossref'd entries [default: no] -o file write output to file [default: bibexport.bib] -h, --help print this message and exit -v, --version print version number and exit
The current download of JabRef will not run for me on OS 10.10.2 (OS X says it is 'damaged'.) But BibDesk also provides a way of doing this.
- Open your large .bib in BibDesk.
- Create a new, empty Bibliography.
- Click Database > 'Select Publications from .aux File'
- Navigate to the .aux file for your document.
- All entries cited in your document will now be selected. Drag them into the empty Bibliography. Save and rejoice.
I have had many journals request a separate .bib of this kind rather than a .bbl.
Or again Mendeley -- with it you could even have a shared collection which will stay in sync.