Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Preserving all capitalization in BibTeX [closed]

Tags:

bibtex

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?

like image 762
Sal Avatar asked May 10 '10 05:05

Sal


People also ask

How do you keep capital letters in BibTeX?

(note that even letters in the middle of words get lower-cased). To protect words that should always be capitalized, you enclose them in braces.

What is the difference between BibTeX and BibLaTeX?

BibLaTeX is the succesor format of BibTeX, it is the more modern format, which enhances bibtex. JabRef supports both formats. In the context of JabRef the main difference is just the different entry types and corresponding fields.

How do you capitalize in LaTeX?

The TeX primitive commands \uppercase and \lowercase are set up by default to work only with the 26 letters a–z and A–Z. The LaTeX commands \MakeUppercase and \MakeLowercase commands also change characters accessed by commands such as \ae or \aa .

What is BibTeX .BIB file?

BibTeX stands for a file format - with file extension of . bib - that contains a bibliography or a list of references. As an external, flat-file database, this BibTex file can be initially created and stored within the Zotero or EndNote software program; Then in order to be used in conjunction with a LaTeX .


5 Answers

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 significant words [1], but not protecting them yet);
  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.

[1] - Significant 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-significant words , I think, to nearly all publishers.

like image 52
Charles Stewart Avatar answered Oct 05 '22 09:10

Charles Stewart


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.

like image 26
Damien Pollet Avatar answered Oct 05 '22 07:10

Damien Pollet


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

like image 42
Kilian Foth Avatar answered Oct 05 '22 07:10

Kilian Foth


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.

like image 23
Jrop Avatar answered Oct 05 '22 08:10

Jrop


One alternative to using {curly brackets} is this:-

  1. Check your root folder for .bbl file, where .bbl is your BiBteX database, after you run pdflatex for the first time and then run bibtex on your BiBteX database file.bbl.

  2. Open this *.bbl file in an editor of your choice.

  3. The file would look like this:  

    \begin{thebibliography}{10}
    
    \expandafter\ifx\csname url\endcsname
    
    \relax
    \def\url#1{\texttt{#1}}
    
    \fi
    \expandafter\ifx\csname urlprefix\endcsname
    
    \relax\def\urlprefix{URL }
    
     \fi
    
    \bibitem{label}.....
    
  4. Edit this *.bbl file to meet your requirements and now run the pdflatex command on your .tex file. This should give you the desired result.

  5. By this method you can edit the bibliography in any manner. You can even add names with accented characters.

like image 36
Sujay K Avatar answered Oct 05 '22 08:10

Sujay K