[Tex/LaTex] Book reviews entry in biblatex-chicago

biblatexchicago-style

I am using the review entry type in biblatex-chicago, and neither the biblatex-chicago nor the biblatex documentation have been helpful.

The result I'd like to obtain is something at least close to the Chicago Manual of style, but I can't figure out which combination of entry fields I should use to get it right.

\documentclass{article}
\usepackage[authordate,backend=biber,indexing=cite,cmsdate=old,sorting=nyt]{biblatex-chicago}
\addbibresource{biblio.bib}

\begin{document}
\title{A Good Article}
\maketitle

Citing \textcite{Review1} for his great criticism of A Great Book.

\printbibliography
\end{document}

with biblio.bib set up as:

@review{Review1,
author={Doe, John},
title = {Me I. Myself's A Great Book},
journal = {The Review of Reviewing Review that Reviews},
volume = {99},
number = {12},
pages = {123-345},
year = {2013}}

Which obviously prints out something almost identical to what an @article entry would, sans the quotation marks. I assume there are some ways of getting something at least a little bit closer to The Chicago Manual (i.e. would print the title as "Book review of" and then all in italics the origauthor followed by a "'s +booktitle+"). I haven't been able to get it working using any combination of entry fields including byreviewer and other.

What am I missing? Is the @review entry entended to be identical to @article and all such formatting should be entered manually?

Best Answer

The biblatex-chicago package provides the @review entry type, but some of the formatting has to be done manually via the titleaddon field (see examples)

@Article{gibbard,
  author       = {Gibbard, Allan},
  title        = {Morality in Living},
  subtitle     = {Korsgaard's {Kantian} Lectures},
  journaltitle = {Ethics},
  year         = 1999,
  volume       = 110,
  number       = 1,
  pages        = {140--164},
  titleaddon   = {\bibstring{reviewof} \mkbibemph{The Sources of
                  Normativity}, \bibstring{by} {Christine M. Korsgaard}},
}

With biber it is possible to automate this process quite a bit.

First we declare some new fields in chicago-authordate.dbx (This file does not exist by default, so it has to be created. If LaTeX can find it, it is then used every time you use the authordate style of biblatex-chicago.). The new fields are revdtitle, revdsubtitle and revdauthor, these are valid only for @reviews.

\ProvidesFile{chicago-authordate.dbx}
\RequireBiber[3]

\DeclareDatamodelFields[type=field,datatype=literal]{revdtitle,revdsubtitle}
\DeclareDatamodelEntryfields[review]{revdtitle,revdsubtitle}
\DeclareDatamodelFields[type=list,datatype=name]{revdauthor}
\DeclareDatamodelEntryfields[review]{revdauthor}

\DeclareDatamodelConstraints[review]{
  \constraint[type=mandatory]{
    \constraintfield{author}
    \constraintfield{revdtitle}
    \constraintfieldsxor{
      \constraintfield{date}
      \constraintfield{year}
    }
  }
}

\DeclareDatamodelEntryfields[review]{
  author,
  journaltitle,
  title,
  day,
  endday,
  endmonth,
  endyear,
  month,
  year,
  addendum,
  annotator,
  commentator,
  doi,
  editor,
  editora,
  editorb,
  editorc,
  editoratype,
  editorbtype,
  editorctype,
  eid,
  eprint,
  eprintclass,
  eprinttype,
  issn,
  issue,
  issuetitle,
  issuesubtitle,
  journalsubtitle,
  language,
  note,
  number,
  origlanguage,
  pages,
  pubstate,
  series,
  subtitle,
  titleaddon,
  translator,
  url,
  urlday,
  urlendday,
  urlendmonth,
  urlendyear,
  urlmonth,
  urlyear,
  version,
  volume}

\endinput

The following code goes into the preamble (or a modified version of chicago-authordate.bbx - in that case, of course, without \makeatletter and \makeatother). It redefines the driver for @review to incorporate the new fields. (The code is adapted directly from chicago-authordate.bbx.)

\DeclareLanguageMapping{american}{cms-american}
\renewcommand{\subtitlepunct}{\addcolon\space}

\DefaultInheritance[\except{*}{review}{all=false}]{all=true,override=false}

\DeclareDataInheritance{book}{review}{
  \inherit{author}{revdauthor}
  \inherit{title}{revdtitle}
  \inherit{subtitle}{revdsubtitle}
}

\DeclareFieldFormat[review]{citetitle}{\mkbibquote{#1\isdot}}
\DeclareFieldFormat[review]{title}{\mkbibquote{#1\isdot}}

\makeatletter
\DeclareBibliographyDriver{review}{%
  \usebibmacro{bibindex}%
  \iffieldequalstr{entrysubtype}{magazine}%
    {\usebibmacro{mag+news+author}}%
    {\usebibmacro{author/editor}}%
  \setunit{\addspace}%
  \printfield{nameaddon}%
  \newunit\newblock
  \ifboolexpr{test {\ifundef{\bbx@lasthash}}  and not test {\iffieldundef{title}}}
    {\printtext[title]{%
       \printfield[titlecase]{title}%
       \setunit{\subtitlepunct}%
       \printfield[titlecase]{subtitle}}%
     \newunit}%
    {}%
  \usebibmacro{cmsbibsortdate}%
  \newunit\newblock
  \ifboolexpr{test {\ifundef{\bbx@lasthash}} or test {\iffieldundef{title}}}
    {}%
    {\printtext[title]{%
       \printfield[titlecase]{title}%
       \setunit{\subtitlepunct}%
       \printfield[titlecase]{subtitle}}}%
  \newunit\newblock
  \ifboolexpr{
    test {\iffieldundef{revdtitle}}
    and
    test {\iffieldundef{revdsubtitle}}
  }
    {}
    {\bibstring{reviewof}%
     \setunit{\addspace}%
     \printtext[emph]{%
       \printfield[titlecase]{revdtitle}%
       \setunit{\subtitlepunct}%
       \printfield[titlecase]{revdsubtitle}}%
     \setunit{\addcomma\space}}%
  \ifnameundef{revdauthor}
    {}
    {\bibstring{byauthor}%
     \setunit{\addspace}%
     \printnames[byauthor]{revdauthor}}%
  \newcunit\newblock
  \usebibmacro{music+eventdate}% 16th ed.
  \setunit{\addspace}%
  \usebibmacro{language+transtitle}%
  \newunit\newblock%
  \usebibmacro{part+editor+translator}%
  \newunit\newblock%
  \usebibmacro{bibreprint}%
%  \newunit\newblock
  \usebibmacro{issuetitle}%
  \setunit*{\addcomma\addspace}%
  \usebibmacro{byeditor+others}%
  \usebibmacro{editorpunct}%\newunit\newblock
  \printfield{note}%
  \setunit*{\addcomma\addspace}\newblock%
  \iffieldequalstr{entrysubtype}{magazine}
    {\usebibmacro{mag+news+date}%
     \newcunit\newblock
     \usebibmacro{chap+pag}}%
    {\usebibmacro{journal+issue+year+pages}}%
  \newunit\newblock
  \usebibmacro{pubstate}%
  \newunit\newblock
  \printfield{addendum}%
  \setunit*{\addcomma\addspace}\newblock%
  \iftoggle{cms@isbn}%
    {\printfield{issn}}%
    {}%
  \setunit*{\addcomma\addspace}\newblock%
  \usebibmacro{bib+doi+url}%
  \newunit\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \usebibmacro{originally+published+as}%
  \usebibmacro{finentry}}
\makeatother

The entry for a review might now look like this

@review{barcott:review,
  journaltitle  = {New York Times Book Review},
  author        = {Barcott, Bruce},
  date          = {2000-04-16},
  entrysubtype  = {magazine},
  revdtitle     = {The Last Marlin},
  revdsubtitle  = {Story of a Family at Sea},
  revdauthor    = {Fred Waitzkin},
  pages         = 7,
}

Thanks to the crossref field and biber's inheritance features, the following will also work

@book{testbook,
  author        = {Walter Ordsmith},
  editor        = {Eddie Ditor},
  title         = {The Work},
  subtitle      = {Subtitle},
  date          = {1983},
}
@review{testrevt,
  author        = {Roald Eviewer},
  title         = {La Review},
  crossref      = {testbook},
  date          = {2011},
  journaltitle  = {Journal of Book Review},
  volume        = {42},
  pages         = {13-45},
}

The full, not so M, WE

\documentclass[american]{article}
\usepackage{lmodern}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[autostyle=true]{csquotes}
\usepackage[authordate, backend=biber]{biblatex-chicago}
\usepackage{hyperref}

\DeclareLanguageMapping{american}{cms-american}
\renewcommand{\subtitlepunct}{\addcolon\space}

\DefaultInheritance[\except{*}{review}{all=false}]{all=true,override=false}

\DeclareDataInheritance{book}{review}{
  \inherit{author}{revdauthor}
  \inherit{title}{revdtitle}
  \inherit{subtitle}{revdsubtitle}
}

\DeclareFieldFormat[review]{citetitle}{\mkbibquote{#1\isdot}}
\DeclareFieldFormat[review]{title}{\mkbibquote{#1\isdot}}

\makeatletter
\DeclareBibliographyDriver{review}{%
  \usebibmacro{bibindex}%
  \iffieldequalstr{entrysubtype}{magazine}%
    {\usebibmacro{mag+news+author}}%
    {\usebibmacro{author/editor}}%
  \setunit{\addspace}%
  \printfield{nameaddon}%
  \newunit\newblock
  \ifboolexpr{test {\ifundef{\bbx@lasthash}}  and not test {\iffieldundef{title}}}
    {\printtext[title]{%
       \printfield[titlecase]{title}%
       \setunit{\subtitlepunct}%
       \printfield[titlecase]{subtitle}}%
     \newunit}%
    {}%
  \usebibmacro{cmsbibsortdate}%
  \newunit\newblock
  \ifboolexpr{test {\ifundef{\bbx@lasthash}} or test {\iffieldundef{title}}}
    {}%
    {\printtext[title]{%
       \printfield[titlecase]{title}%
       \setunit{\subtitlepunct}%
       \printfield[titlecase]{subtitle}}}%
  \newunit\newblock
  \ifboolexpr{
    test {\iffieldundef{revdtitle}}
    and
    test {\iffieldundef{revdsubtitle}}
  }
    {}
    {\bibstring{reviewof}%
     \setunit{\addspace}%
     \printtext[emph]{%
       \printfield[titlecase]{revdtitle}%
       \setunit{\subtitlepunct}%
       \printfield[titlecase]{revdsubtitle}}%
     \setunit{\addcomma\space}}%
  \ifnameundef{revdauthor}
    {}
    {\bibstring{byauthor}%
     \setunit{\addspace}%
     \printnames[byauthor]{revdauthor}}%
  \newcunit\newblock
  \usebibmacro{music+eventdate}% 16th ed.
  \setunit{\addspace}%
  \usebibmacro{language+transtitle}%
  \newunit\newblock%
  \usebibmacro{part+editor+translator}%
  \newunit\newblock%
  \usebibmacro{bibreprint}%
%  \newunit\newblock
  \usebibmacro{issuetitle}%
  \setunit*{\addcomma\addspace}%
  \usebibmacro{byeditor+others}%
  \usebibmacro{editorpunct}%\newunit\newblock
  \printfield{note}%
  \setunit*{\addcomma\addspace}\newblock%
  \iffieldequalstr{entrysubtype}{magazine}
    {\usebibmacro{mag+news+date}%
     \newcunit\newblock
     \usebibmacro{chap+pag}}%
    {\usebibmacro{journal+issue+year+pages}}%
  \newunit\newblock
  \usebibmacro{pubstate}%
  \newunit\newblock
  \printfield{addendum}%
  \setunit*{\addcomma\addspace}\newblock%
  \iftoggle{cms@isbn}%
    {\printfield{issn}}%
    {}%
  \setunit*{\addcomma\addspace}\newblock%
  \usebibmacro{bib+doi+url}%
  \newunit\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \usebibmacro{originally+published+as}%
  \usebibmacro{finentry}}
\makeatother

\addbibresource{\jobname.bib}

\begin{filecontents}{\jobname.bib}
@book{KuhnCopRev,
  author    = {Thomas S. Kuhn},
  title     = {The Copernican Revolution},
  subtitle  = {Planetary Astronomy in the Development of Western Thought},
  publisher = {Harvard University Press},
  address   = {Cambridge, Mass.},
  date      = {1995},
  origdate  = {1957}
}
@article{testart,
  author        = {Arnold Uthor and William Riter},
  %author        = {Arnold Uthor and William Riter and Rita Esearcher and Steven C. Ientist and Stuart T. Udent and Peter R. Ofessor and Lewis E. C. Turer},
  title         = {A Very Interesting Article},
  journal       = {Journal of Articles},
  volume        = {7},
  number        = {3},
  pages         = {1-5},
  date          = {2010},
}
@book{testbookt,
  author        = {Arnold Uthor},
  title         = {Long Book},
  date          = {1990},
}
@book{testbook,
  author        = {Walter Ordsmith},
  editor        = {Eddie Ditor},
  title         = {The Work},
  subtitle      = {Subtitle},
  date          = {1983},
}
@review{testrev,
  author        = {Roald Eviewer},
  title         = {Another Review},
  crossref      = {testbookt},
  date          = {2010},
  journaltitle  = {Journal of Book Review},
  volume        = {12},
  number        = {3},
  pages         = {2-17},
}
@review{testrevt,
  author        = {Roald Eviewer},
  title         = {La Review},
  crossref      = {testbook},
  date          = {2011},
  journaltitle  = {Journal of Book Review},
  volume        = {42},
  pages         = {13-45},
}
@review{testrevkamp,
  author        = {David Kamp},
  title         = {Deconstructing Dinner},
  revdtitle     = {The Omnivore's Dilemma},
  revdsubtitle  = {A Natural History of Four Meals},
  revdauthor    = {Michael Pollan},
  date          = {2006-04-23},
  journaltitle  = {New York Times},
  url           = {http://www.nytimes.com/2006/04/23/books/review/23kamp.html},
}
@online{testonline,
  author        = {Bernie Logger},
  title         = {A Very Opinionated Blog Post},
  url           = {http://example.com},
  year          = {2013},
}
@review{barcott:review,
  journaltitle  = {New York Times Book Review},
  author        = {Barcott, Bruce},
  date          = {2000-04-16},
  entrysubtype  = {magazine},
  revdtitle     = {The Last Marlin},
  revdsubtitle  = {Story of a Family at Sea},
  revdauthor    = {Fred Waitzkin},
  pages         = 7,
}
@review{gibbard,
  author        = {Gibbard, Allan},
  title         = {Morality in Living},
  subtitle      = {Korsgaard's {Kantian} Lectures},
  journaltitle  = {Ethics},
  year          = 1999,
  volume        = 110,
  number        = 1,
  pages         = {140--164},
  revdtitle     = {The Sources of Normativity},
  revdauthor    = {Christine M. Korsgaard},
}
@review{osborne:poison,
  journaltitle  = {Salon},
  entrysubtype  = {magazine},
  date          = {2000-03-29},
  author        = {Osborne, Lawrence},
  title         = {Poison Pen},
  revdtitle     = {The Collaborator},
  revdsubtitle  = {The Trial and Execution of Robert Brasillach},
  revdauthor    = {Alice Kaplan},
  url           = {http://www.salon.com/books/it/2000/03/29/kaplan/index.html},
  urldate       = {2001-07-10},
}
\end{filecontents}


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

yields enter image description here

Related Question