Capitalize book titles and subtitles in `biblatex` bibliography

294 Views Asked by At

@samcarter has very helpfully shown how to capitalize article, journal and book titles in biblatex bibliography (see here). However, the question remains as to how to capitalize subtitles as in this bib entry for a book with a title and a subtitle:

@Book{Elias2000,
  author =       "Norbert Elias",
  title =        "The civilizing process",
  year =         "2000 [1939]",
  subtitle =     "Sociogenetic and psychogenetic investigations",
  edition =      "Revised",
  publisher =    "Blackwell",
  location =     "Oxford"}

In a nutshell, how can we make @samcarter's solution work for the subtitle Sociogenetic and psychogenetic investigations as well?

Thank you so much!

1

There are 1 best solutions below

5
samcarter_is_at_topanswers.xyz On BEST ANSWER

The Chicago biblatex style seems to use the stnoformat field format for the subtitle. You can redefine it like this:

\documentclass{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

% Bibliography
\usepackage[backend=biber, style=chicago-authordate, hyperref=auto, bibencoding=inputenc, refsection=chapter, doi=false, url=false, isbn=false, eprint=false]{biblatex}
\usepackage[babel,autostyle=true]{csquotes}

% Capitalize article titles and journal names
\usepackage{mfirstuc} 
\MFUnocap{a}
\MFUnocap{for}
\MFUnocap{the}
\MFUnocap{of}
\MFUnocap{and}
\MFUnocap{con}
\MFUnocap{il}
\DeclareFieldFormat{jtnoformat}{\capitalisewords{#1}}
\DeclareFieldFormat{stnoformat}{\capitalisewords{#1}}

\usepackage{xpatch}
\xpatchbibmacro{mag+news+title}{\printfield[noformat]{title}}{\printfield[jtnoformat]{title}}{}{}

\xpatchbibmacro{italtitle+stitle}{\printfield[tnoformat]{title}}{\printfield[jtnoformat]{title}}{}{}

\begin{filecontents*}[overwrite]{sample.bib}
@Book{Elias2000,
  author =       "Norbert Elias",
  title =        "The civilizing process",
  year =         "2000 [1939]",
  subtitle =     "Sociogenetic and psychogenetic investigations",
  edition =      "Revised",
  publisher =    "Blackwell",
  location =     "Oxford"}
\end{filecontents*}

\addbibresource{sample.bib}

\begin{document}

\nocite{Elias2000}.

\printbibliography

\end{document}

enter image description here