Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

According to the 16th version of the Chicago Manual of Style, titles in the reference list are now supposed to be capitalized in title case style rather than sentence casing. Yet, as far as I understand, BibLaTeX-chicago (0.9.9b) does not seem to make any automatic changes to the capitalization of .bib-entries.

Is there any way (except for doing it manually for each entry, of course) to get BibLaTeX-chicago use title case capitalization for the entry field title in all entry-types (regardless of how the title is formatted in the .bib-field) ?

Here's a MEW:

\documentclass[12pt, a4paper]{article}
\usepackage[authordate,strict,backend=biber, cmsdate=old]{biblatex-chicago}
\begin{filecontents}{bibsample2.bib}
@BOOK{Smith2003,
 title = {This is the book title},
 publisher = {Penguin},
 year = {2003},
 author = {Smith, James},
 address = {London},
    }
@ARTICLE{Doe1970,
 author = {Doe, John J.},
 title = {this is the article title},
 journal = {Great Journal},
 year = {1970},
 volume = {40},
 pages = {207-234},
}
\end{filecontents}
\addbibresource{bibsample2.bib}
\begin{document}
\autocite{Smith2003}
\autocite{Doe1970}
\printbibliography
\end{document}

So, what I'm looking for is for these titles to be spelled as

This is the Book Title

This is the Article Title

in the output.

I'm using the latest version of BibLaTeX (2.5), Biber (1.5) and BibLaTeX-chicago (0.9.9b).

Any pointers are greatly appreciated..

share|improve this question
2  
I think David Fussner is referring to the fact the CMS no longer calls for sentence-style capitalization in their author-date system. This makes it consistent with their notes system. So biblatex-chicago users don't have to worry about protecting letters/words from automatic down-casing. –  Audrey Feb 11 '13 at 14:47
    
So, you mean that biblatex-chicago is not automatically up-casing anything, but simply refraining from down-casing the titles? –  Irene Feb 11 '13 at 15:04
    
I think so, yes. That is also the default behaviour in the standard biblatex styles. –  Audrey Feb 11 '13 at 15:13
    
Thanks, that would explain things! Is there any way to add title case capitalization to the bibliography (except by changing each entry's casing by hand..)? –  Irene Feb 12 '13 at 6:47
1  
Although there is doubtlessly a way to force the formatting directives, long-term and for compatibility purposes across different styles and languages, it will be better to fix your .bib file: capitalization rules are different depending on the language (e.g., imagine a collection of essays written in different languages: essay titles in, say, English, French, and Italian, but the booktitle in German!). Now that there is no forced down-casing, title = {<Whatever>}, can be entered as it should without be according to that language's conventions. –  jon Feb 13 '13 at 0:40

1 Answer 1

up vote 3 down vote accepted

Any automatic solution will have a hard time beating a human well-versed in the Chicago Manual of Style's headline-style capitalization rules. So you're probably better off formatting titles in your source file manually. Whenever the document language or bibliography format calls for sentence-style capitalization, it is relatively easy to apply with biblatex's \MakeSentenceCase macro.

That said you could write a new macro, say \MakeHeadlineCase, and apply it in the title formatting directives. Another approach is to use biber's sourcemap option. It supports regular expressions and modifies fields before biblatex even sees them, which means the solution is entirely style-independent.

A rough approximation to headline-style capitalization is implemented in the following source mapping. It uses the XML syntax of the biber configuration file biber.conf. You can also specify source mappings in the document preamble with biblatex's \DeclareSourcemap command.

<?xml version="1.0" encoding="UTF-8"?>
<config>
<sourcemap>
  <maps datatype="bibtex" map_overwrite="1">
  <map>
    <map_step map_field_source="TITLE"
              map_match="(^|\s)(\w+\S*w*)" map_replace="$1\u\L$2"/>
    <map_step map_field_source="TITLE"
              map_match="\-(\w+)" map_replace="\-\u\L$1"/>
    <map_step map_field_source="TITLE"
              map_match="(\s+|\-)(A(|n|nd|s|t)|F(or|rom)|I(n|s)|O(f|n|r)|T(he|o)|With)\b"
              map_replace="$1\L$2"/>
    <map_step map_field_source="TITLE"
              map_match="([:;]\s+)([a-z])" map_replace="$1\u$2"/>
  </map>
  </maps>
</sourcemap>
</config>

The first two steps capitalize words at the beginning of the string (^), after whitespace (\s) or following a hyphen (\-). The third map down-cases selected words after whitespace or a hyphen. The last map capitalizes words following a colon or semi-colon ([:;]).

Here's a self-contained example.

\documentclass{article}
\usepackage[backend=biber]{biblatex}
\usepackage{filecontents}

\begin{filecontents*}{biber.conf}
<?xml version="1.0" encoding="UTF-8"?>
<config>
<sourcemap>
  <maps datatype="bibtex" map_overwrite="1">
  <map>
    <map_step map_field_source="TITLE"
              map_match="(^|\s)(\w+\S*w*)" map_replace="$1\u\L$2"/>
    <map_step map_field_source="TITLE"
              map_match="\-(\w+)" map_replace="\-\u\L$1"/>
    <map_step map_field_source="TITLE"
              map_match="(\s+|\-)(A(|n|nd|s|t)|B(ut|y)|F(or|rom)|I(n|s)|O(f|n|r)|T(he|o)|With)\b"
              map_replace="$1\L$2"/>
    <map_step map_field_source="TITLE"
              map_match="([:;]\s+)([a-z])" map_replace="$1\u$2"/>
  </map>
  </maps>
</sourcemap>
</config>
\end{filecontents*}

\begin{filecontents*}{\jobname.bib}
@BOOK{Smith2003,
  title = {This is an off-the-hook book title, but it doesn't have a subtitle},
  publisher = {Penguin},
  year = {2003},
  author = {Smith, James},
  address = {London}}
@ARTICLE{Doe1970,
  author = {H{\"a}user, {\O}rnulf},
  title = {{\O}rnulf H{\"a}user's letter to the editor: an $\alpha$-to-$\omega$
           summary of $\epsilon$--improvement},
  journal = {Great Journal},
  year = {1970},
  volume = {40},
  pages = {207-234}}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

enter image description here

share|improve this answer
    
Thanks a lot Audrey, will look into this! –  Irene Feb 13 '13 at 6:15

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.