Wednesday, January 18, 2006


Some notes on BibTex

Finding the right bibliographic/reference tool


Handling references and bibliographic information is an essential part of all research. Summarized, this task can be divided into three parts:
As a PhD student, I need tools to help me with these tasks. In this article I will share with you some thoughts and experiences I have had during my search for the right bibliographic tool.
Update: Cleaned up the presentation and added WIKINDX and refbase to my list of tools.
What I am looking for
Finding references has become quite easy. Services like Engineering Village , IEEE Xplorer and many others make it a breeze to search huge online bibliographic databases. Thousands of reference records and full-text articles are available for download, making it easy to have your own personal library stored on your hard disk. A good bibliographic tool should make it easy to import and organize downloaded references and documents.
When it comes to formatting bibliographic information in articles and reports, there is for me only one option: BibTeX and LaTeX. BibTeX uses style files to produce bibliographies, and handles all the formatting. Some bibliographic tools come with hundreds of output styles for different publications. For me this is not important, since I let BibTeX do all the work.
Many people use MS Word, even though Word is not well suited for writing scientific papers and technical reports. Most of the commercial bibliographic software can easily be integrated with MS Word. However, for me it is more important to have BibTeX support than a nifty Word plug-in.
So what I am looking for in a bibliographic tool is:
Easy to import references from online sources.
Must support common bibliographic formats, especially BibTeX.
It should be possible to organize references in categories, by authors, by keywords etc.
Nice and functional GUI
Non-hassle interface with BibTeX and LaTeX.
Easy access to electronic documents and URLs.
MS Windows compatible. Cross platform is a plus
Should not cost me a lot of money :-)
The tools
A quick search on the Internet reveals that there are many tools to choose from. Fortunately there exist a few web pages that have links to and describes most of them. Two such pages are:
Bibliographic Related Software and Standards Information
Open standards and software for bibliographies and cataloging
The latter covers only free and open source tools.
Commercial software
The most popular commercial tools seem to be:
All three are from Thomson ResearchSoft. They have a long history and are recommended by many universities . Their user interface seems to be unchanged since the Windows 3.1 era, and would have benefited from a face lift. They are all quite similar in functionality and have tons of import/export filters and output styles. ProCite also has some nice functionality for organizing references in groups.
Some tools with more modern user interfaces are:
Bookends (Mac only)
The first three programs on the list have much of the same functionality as the software from Thomson. Biblioscape and Bibliographix have built in word processors that let you write notes and drafts. They also offer functionality for organizing references in folders. BibTeXMng is a shareware program for manipulating BibTeX files.
If you do not need software that runs on your personal computer, there exist tools that only need a browser and a connection to the Internet. Two such tools are:
Free and open source software
I have always been attracted to free and open source software. I have no principles against commercial software, but when I compare free and commercial software in cost-benefit terms, free and open source software tends to win.
Among the free software are most of the tools that use the BibTeX format as their native database format. Five such tools are:
A small and simple program for creating and editing BibTeX files. No import or export functionality.
A BibTeX database manager, bundled with Scientific Workplace. Has an ancient looking GUI, but has a decent set of features.
A Java based graphical front end to manage BibTeX databases. Nice GUI, can easily import from online sources and is actively developed.
A framework for managing bibliographic databases. Written in Python. Provides a scripting environment and a Gnome GUI. Can also be used with formats other than BibTeX.
Graphical BibTeX-bibliography manager for Mac OS X.
My favourite is currently JabRef. It is an excellent program. The group functionality in JabRef has improved a lot in the latest versions and is now quite powerful. The import-filters are not perfect, but JabRef is constantly evolving and they will probably be improved in future versions.
I am attracted to Pybliographer since it is written in Python, my favourite programming language. Sadly the GUI only runs on Linux, and it does not have all the features of JabRef.
All of the tools above are basically front ends for plain BibTeX files. I find this very convenient and it's a good solution for single users. However, if a bibliographic database is to be used and edited by multiple users, it may be a problem to keep everything in a single BibTeX file. A solution to this problem may be to have an online bibliographic database with a web front end. Two such tools are:
A web based bibliographic and quotations/notes management and article authoring system designed either for single use or multi-user collaborative use across the Internet.
A web-based, platform-independent, multi-user interface for managing scientific literature and citations
Both tools run on an Apache web server with PHP and MySQL. They have good support for BibTeX, but they also support other bibliographic formats compatible with Endnote, Refman, Procite etc. The main strength of a web based tool is that multiple users can use and maintain a common bibliographic database. Personally, I find web applications a bit awkward to use compared to desktop applications. However, with technologies like AJAX, web applications will become more attractive.
For information about other free tools, take a look at the Open standards and software for bibliographies and cataloging ‫page.
Concluding remarks
I am currently using JabRef for organizing my bibliographic information. It satisfies many of my needs. Some of the commercial alternatives may have more features, but most of them are too MS Word oriented and lack proper BibTeX support. I am also reluctant to pay for software when the free alternatives are so good.
The web based tools are very interesting alternatives, but with my current work flow I prefer to work directly with the BibTeX files. However, I see the usefulness of having an online bibliographic database and I will probably create one in the near future in addition to my personal BibTeX database.
I still haven't found the perfect bibliographic tool. However, by choosing open source tools I can contribute to and influence the development. My first contribution is BibConverter, a simple web-application that converts citations from IEEEXplore and Engineering Village to the BibTeX format. The tool outputs BibTeX records that are more accurate and contains more information than when using the export functionality of IEEEXplore and EV2. Read more about BibConverter in a separate notebook entry.

Choosing a BibTeX Style


The great feature of BibTeX is that it takes a standardized database of books, articles, and other bibliographic entries and puts it in a customized format. A BibTeX style can change how a work is cited and how the bibliography is formatted.

How to Use a Specific Style
Choose your BibTeX style from the list below. Place it in the same folder as your LaTeX document.
Change the following line of your LaTeX document to reflect the style you chose. Remember to remove the file extension. For example,if you wanted to use the American Antropologist style, \bibliographystyle{filename} would become \bibliographystyle{humannat}.
Many BibTeX styles require the inclusion of a package at the top of the document. The comments about a style will tell you exactly how to include its package.
Anytime you want to cite a document, type \cite[pagenumber]{label}. The square brackets and page number are optional. Some BibTeX styles use non-standard citations. Those styles below include directions for how cite correctly for that specific style.
You will need to typeset your document four times, first LaTeX, BibTeX, LaTeX, and then LaTeX again. Your bibliography will now appear in the style of your choice and your citations will be correctly formatted.
The Seven Standard Styles
Every computer with LaTeX comes with the following seven standard styles. While they work, we recommend the natbib interpretations below.








Styles Recommended by Reed
The following three styles were created or founded by Reed to match the following style manuals as closely as possible. Right-click (Control-Click on a Mac) on the linked name to download the style you want.

Chicago Manual of Style
This is a custom style created by Sarah Sugarman to duplicate the Chicago
manual of style as closely as possible. Make sure to include natbib
as a package or it won't work. The following line should appear in the preamble: \usepackage{natbib}. While the citations are not perfect (there is no support for the first citation of a work to have a full entry while every subsequent citation uses the short form), it is near impossible to create a BibTeX style closer to the Chicago Manual of Style. Several theses have been approved by the History department (as well as other departments) and accepted by the library that use this style. To get a citation identical to the example above, use the following:


APA Style (American Psychology Association)
We recommend apacite, available from at the link above. It has been found to be the best of the styles attempting to follow the APA manual. Make sure to include the following in the preamble:


Modern Language Associate Style (MLA)
This is a custom style created by Sarah Sugarman to duplicate the Modern Language Associate style manual (6th Edition) as closely as possible. Make sure to include natbib
as a package or it won't work. The following line should appear in the preamble: \usepackage{natbib}. MLA asks for citations of the form (LastName PageNumber), which is unsupported by Natbib's citation styles. We have asked Dr. Patrick Daly to provide support for these type of parenthetical citations in his next revision of natbib. In the meantime, citations of the following form will provide the correct citation:

(\citeauthor*{citekey} pagenumber)

Natbib Standard Styles



(Items in bibliography sorted in order cited)

Different Citation Styles in Natbib
Author Name Styles look like this:

Numerical Styles look like this:

Styles Available at is the official LaTeX archive containing both the official LaTeX packages and items contributed by LaTeX users. Many of these BibTeX styles have either been created by journal editors or publishers for their authors or by users creating packages to fulfill a personal need. One problem with the user-contributed styles is that they may not match the official style they claim to implement exactly. However, the journal-specific styles will exactly match the journal's house style, as they were designed by the journals. Therefore, we recommend testing any non-journal style by using it with a large BibTeX database and compare the resulting bibliography to the official style. We have also created BibTeX styles for Chicago, APA, and MLA styles that follow the official manuals as closely as possible. They are available below with instructions on how to use them.

Discipline Specific Listings of BibTeX Journal Styles
Human Nature (humannat.bst)
American Anthropologist (humannat.bst)
Behavior and Brain Sciences (bbs.bst)
American Journal of Human Genetics(ajhg.bst)
American Medical Association Journals (JAMA, Cancer, etc.) (ama.bst)
Applied Bioinformatics (openmind.bst, include openmind)
Applied Bionics and Biomechanics (openmind.bst, include openmind)
Applied Biotechnology, Food Science and Policy (openmind.bst, include openmind)
Applied Environmental Science and Public Health (openmind.bst, include openmind)
Applied Health Economics and Health Policy (openmind.bst, include openmind)
Applied Nanoscience (openmind.bst, include openmind)
Applied Population and Policy (openmind.bst, include openmind)
Behavior and Brain Sciences (bbs.bst)
Bioinformatics (bioinformatics.bst, include bioinformatics)
Council of Biology Editors (includes such journals as American Naturalist, Evolution, etc) (cbe.bst)
Cell (cell.bst)
Development (development.bst)
Ecology (ecology.bst, include natbib,emboj, floatfig)
Human Biology (humanbio.bst)
Human Mutation (humanmutation.bst, include humanmutation)
Journal of Bacteriology (jbact.bst)
Journal of Molecular Biology (jmb.bst)
Journal of Neuroscience (namedplus.sty, include namedplus)
Journal of Super Computing (jsupercomp,include jsupercomp)
Journal of Theoretical Biology (jtb.bst and newjtb.bst)
Methods in Enzymology (methenz.bst)
Molecular Cell Biology (molcellbiol, include molcellbiol)
National Cancer Institute (nci.bst, include nci and \usepackage[normalem]{ulem}}
Nature (nature.bst, include nature, citesuppernumber, naturefem)
Neuron (neuron.bst)
Nucleic Acid Research (nar.bst)
PLoS: Public Library of Science Journals (plos.bst, include natbib)
Proceedings of the National Academy of Science (pnas.bst)
Proteins (proteins.bst, include proteins, citesupernumber)
Science (science.bst, scicite.sty)
American Chemical Society Journals (achemso.bst, include achemso)
Journal of Computation Chemistry (jcc.bst)
Journal of Physical Chemistry (jpc.bst)
Physical Chemistry Chemical Physics (pccp.bst)
Reviews in Computational Chemistry (revcompchem.bst)
Ancient Greek
American Economic Review (aer.bst, include harvard, aer, aertt, and ulem)
Canadian Journal of Economics (cje.bst, include cje)
Econometrica (econometrica.bst, include harvard)
Economic Theory (et.bst, include et)
Journal of Economics and Business (JEB.bst, include JEB, harvard, endnotes, caption2)
Journal of Finance (jf.bst, include harvard)
Journal of Investing (JOI.bst, include JOI, harvard, endnotes, caption2)
Macroeconomic Dynamics (et.bst, include et)
Review of Financial Studies (rfs.bst)
English and Creative Writing
French - translations of standard styles
Abbreviated (abbrv-fr.bst)
Alphabetical (alpha-fr.bst)
Plain (plain-fr.bst)
Unsorted (unsrt-fr.bst)
DIN 1505 Standard aka Author-Year Style
Abbreviated (abbrvdin.bst)
Alphabetical (alphadin.bst)
Nat Bib for German (natdin.bst)
Plain (plaindin.bst)
Unsorted (unsrtdin.bst)
Germbib Package
Abbreviated (gerabbrv.bst)
Alphabetical (geralpha.bst)
Apalike (gerapali.bst)
Plain (gerplain.bst)
Unsorted (gerunsrt.bst)
CSLI (cslibib.bst)
Language (laslike.bst)
Lingua (lingua.bst)
Linguistic Society of America style sheet (lsalike.bst)
Natural Language Semantics (nals.bst)
Association for Computing Machinery (acm.bst)
Association for Computing Machinery Transactions (acmtrans.bst)
American Mathematical Society
alphabetical (amsalpha.bst)
plain (amsplain.bst)
American Statistical Association Journals (asa.bst, include \bibpunct{(}{)}{;}{a}{}{,} in the preamble)
American Statistician
Journal of Agricultural, Biological, and Environmental Statistics
Journal of the American Statistical Association
Journal of Business and Economic Statistics
Journal of Computational and Graphical Statistics
Biometrika (biometrika.bst)
Computer Journal (cj.bst)
Design Computing Unit, University of Sydney (dcu.bst)
IEEE Transactions (ieeetr.bst)
Institute of Mathematical Statistics Journals (ims.bst)
Annals of Applied Probability
Annals of Probability
Annals of Statistics
Journal of the Royal Statistical Society (rss.bst)
Numerical Algorithms (numalg.bst)
American Association for Artificial Intelligence (aaai.bst)
American Association for Artificial Intelligence (aaai.bst)
American Association for Artificial Intelligence (aaai.bst)
American Institute of Physics Journal (phaip.bst)
Astronomy (astron.bst)
Computer Physics Communications (phcpc.bst)
International Atomic Energy Agency Conferences (phiaea.bst)
IEEE with annotations(IEEEannot.bst)
IEEE Transactions (ieeetr.bst)
Journal of Computational Physics (phjcp.bst)
Journal of Quality Technology (jqt1999.bst)
Nuclear Fusion
Nuclear Fusion Letters
Optical Society of America (osa.bst)
Physics of Fluids
Reviews of Modern Physics (amsrmp.bst)
Physical Review (covers A, B, C, D, E, Special Topics, Focus, and Letters) (apsrev.bst)
Translate Physics Journals Initials into Full Names
Political Science
Psychology (various APA styles)
Russian (supporting Russian and Ukrainian)
GOST 7.1 1984
Sorted (gost71s.bst)
Unsorted (gost71u.bst)
GOST 7.80 2000
Sorted (gost780s.bst)
Unsorted (gost780u.bst)
American Journal of Sociology (ajs.bst)
American Sociological Review (asr.bst)

JabRef is an open source bibliography reference manager. The native file format used by JabRef is BibTeX, the standard LaTeX bibliography format. JabRef runs on the Java VM (version 1.4.2 or greater), and should work equally well on Windows, Linux and Mac OS X.

A simple program to edit BibTeX files with a basic Z39.50 client for the Win32 platform. It is written with MS VC++ 6.

An online tool for converting citations to the BibTeX format


BibConverter is an online tool I have written for converting citations from IEEEXplore and Engineering Village (EV2) to the BibTeX format. It extracts data from text copied directly from the web and outputs BibTeX records that contains much more information than citations exported using the export functionality provided by these bibliographic services. Try it out at
BibConverter is the result of laziness and frustration. I wanted to minimize the time from finding an interesting reference online to a new entry in my BibTeX database. Both IEEEXplore and EV2 can export references to plain text, RIS format, and the latter can even export BibTeX records. However, I often find the exported data inadequate for my needs.
I'm currently using JabRef for managing my BibTeX references. It has become a very nice tool, but it's RIS import has some weaknesses. Jabref's RIS import filter is steadily improving, but I was impatient and wanted to try to implement my own RIS to BibTeX converter using Python. I soon realised that writing a good RIS to BibTeX converter is not an easy task. Here's why:
A RIS record can store a bibliographic data which has no clear mapping to the BibTeX format
A RIS record exported from IEEEXplore is quite different from a record exported from Engineering Village. A filter that can read data from IEEEXplore may fail when reading data from another database.
The information exported from online databases is often incomplete
IEEEXplore and especially EV2, stores much information about each reference, including a DOI, author affiliation, conference location and ISSN. All of this information is available when browsing the reference online, but only a subset of this information is exported when using the download functionality. When I discovered this, I gave up my attempt to write a RIS converter. I wanted to have access to all available information.
After some thinking I got an idea. Why not extract information directly from the web-page using copy and paste? The online record views at IEEEXplore and EV2 have a well defined structure. With some clever text processing it's relatively easy to extract all the available information. The extra amount of information makes it easier to output correct and complete BibTeX records. Add a web interface, and you'll have a very useful tool.
Future plans
I plan to add more features to BibConverter as I and other users need them. Don't hesitate to contact me if you find bugs or have a feature request. Eventually I'll make the source code available for download.

<< Home

This page is powered by Blogger. Isn't yours?