tags:

views:

328

answers:

4

I have a huge .bib file generated automatically from Papers for Mac and all the capitalization in the .bib is already the way I want it, but it doesn't have {} brackets on word like RNA.

Is there a way to force BibTeX to keep the capitalization rather than change some words to lowercase?

+4  A: 

In that case you should just add {} around each entire title, which has the same effect and should be easy to do automatically.

Kilian Foth
This works, but it'll not always result in the behaviour you want: http://stackoverflow.com/questions/1897728/a-bib-style-to-capitalize-book-titles-but-not-paper-titles/1920968#1920968
Charles Stewart
A: 

If you prefer to edit the bibtex style (.bst) rather than the bibliography (.bib), you can search for occurences of change.case$ in it. This is the function that capitalizes or title-izes fields that are not people names.

Typically, for the title field, you should find something like title "t" change.case$. Since you want the title unmodified, replace that by just title.

Damien Pollet
+1  A: 

I agree with Killian that the right thing is to put {}s to conserve capitalisation, but I don't recommend doing this always, since the behaviour is wrong in some contexts, and not automatisable, but instead the right thing with Bibtex is to do the following:

  1. Put book and article titles into title case (i.e., capitalising all non-significant words [*]);
  2. Protect the capitals of all proper names, e.g., From {B}rouwer to {H}ilbert;
  3. Protect the capitals of all technical acronyms, e.g., The definition of {S}tandard {ML}; and
  4. Protect the initial word of a subtitle, e.g. the {W}ittgenstein's Poker: {T}he story of a ten-minute argument.

Don't protect lowercase letters: this prevents Bibtex from converting the string to all-caps, which is required by some obscure bibliographical styles.

If you have been using a spell-checker, then the contents of its database will, with luck, contain nearly all of the material you need to know to capitalise properly: spell-checker's store information on which words are all-caps, and which are capitalised as proper names. If you can programmatically match words against this, then you can generate your Bibtex database automatically, with more than a little work, but it's maybe a two-hour project.

Tiresomely, Bibtex can't be used to get all bibliographies right, since different citation styles actually have different lists of non-significant words. However, in practice hardly anyone ever cares about the differences, so one can come up with a standard list of non-capitalised words.

[*] "a", all two-letter actual words, "the", "and", "some", all one-word prepositions, and all one-word pronouns would be an acceptable list of non-standard words , I think, to nearly all publishers.

Charles Stewart
A: 

I was getting the same issue with a title such as:

title = {blah blah AB blah AB blah}

turning out as:

"blah blah ab blah ab blah"

Using Charles Stewart's suggestion, I changed my title to:

title = {blah blah {A}{B} blah {A}{B} blah}

Now my title turns out right: blah blah AB blah AB blah

Hope this helps.

Jrop