CrossTeX is a new bibliography management tool.
It comprises a new bibliographic database format that is
much less prone to error and
much easier to manage
compared to other alternatives like BibTeX,
and a new, more flexible tool for
creating the citations that appear at the end of scholarly texts.

CrossTeX was born out of the author's frustration with
inconsistencies and errors
in the citations of scholarly papers.

Citation databases for BibTeX are written in a format
that is easy for computers to parse but difficult for
humans to maintain. In turn, this leads to inaccurate or inconsistent citations,
difficulty in recalling citation keys which in turn can lead to mis-citations, and
frequent, massive changes to the database, often to get a paper to fit
under a given page limit.

A typical BibTeX file, assembled
over time by cutting and pasting citations from the web,
looks like a hodge-podge where some authors get full names while others
only get initials, some states are spelled out while others get just two letters,
and the conferences are abbreviated at random. This leads to messy
citations. Certainly, no scientist would keep their experimental
data in a sloppy format, or randomly insert punctuation into their code, or haphazardly
abbreviate words in the main body of their paper. This standard of care,
sadly, seems not to be applied to BibTeX-generated references, making
otherwise excellent scientists look disorganized and unprofessional.

CrossTeX has three critical features that address these problems:

Object-oriented: Citation databases in CrossTeX are object-oriented.
You can define a “conference” object just once
and simply refer to it.
You can similarly define “location” objects and refer to them.
You can specify that a conference object
in a particular year was held
in a particular location,
and none of your paper information need ever repeat this information again.
You can spell the name of an author correctly just once,
and simply reuse that object instead of having to re-spell it every time.

Cite by Constraint: You can cite a paper simply by specifying enough
details about it to make it unique. You do not need to remember an arcane citation key to
cite a paper; if you specify "a paper by Sirer in 2009 at NSDI", CrossTeX will recall and
cite the right paper.

Automatic Shortening: Every object in CrossTeX can be rendered in long and short form.
If under time-pressure to shorten a paper, all states or conference names
may be abbreviated with just a single flag. Similarly, author first names can be dropped
uniformly for all authors, conferences can be trimmed down to their identifying acronyms uniformly without having to edit the master database.

CrossTeX is backwards-compatible with BibTeX.
You can use a BibTeX database with CrossTeX,
and invoke crosstex where you used to invoke bibtex.
It is particularly well-suited for use in Computer Science and Engineering,
with support for frequently cited publication formats and
an extensive library of published articles at top conferences.

CrossTeX can generate HTML as well as LaTeX, and can thus create professional citations
for web pages.