latexcapitalizationbiblatex

Capitalize article, journal and book titles in biblatex bibliography


I would like to capitalize not only article and journal titles as in here and in the MWE below that simply reproduces the latter, but also book titles when using biblatex.

My MWE for the main text is (main.tex):

\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}}

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

\addbibresource{sample.bib}

\begin{document}

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec hendrerit tempor tellus. Donec pretium posuere tellus. Proin quam nisl, tincidunt et, mattis eget, convallis nec, purus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla posuere. Donec vitae dolor. Nullam tristique diam non turpis. Cras placerat accumsan nulla. Nullam rutrum. Nam vestibulum accumsan nisl \parencite{Poggi2008,Polachek1985}.

\printbibliography

\end{document}

And my MWE for the bib file (sample.bib) is:

@Book{Poggi2008,
  author =       "Gianfranco Poggi and Giuseppe Sciortino",
  title =        "Incontri con il pensiero sociologico",
  year =         2008,
  publisher =    "Il Mulino",
  address =      "Bologna"}

@article{Polachek1985,
    author = "Polachek, Solomon William",
    journal = "The journal of human resources",
    month = "Summer",
    number = 3,
    pages = "437--440",
    title = "Occupational segregation: A defense of human capital predictions",
    volume = 20,
    year = 1985}

By compiling you'll see that the article and journal for the Polacheck entry is capitalized beautifully, but the entry for the book by Poggi is not.


Solution

  • \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}}
    
    \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{Poggi2008,
      author =       "Gianfranco Poggi and Giuseppe Sciortino",
      title =        "Incontri con il pensiero sociologico",
      year =         2008,
      publisher =    "Il Mulino",
      address =      "Bologna"}
    
    @article{Polachek1985,
        author = "Polachek, Solomon William",
        journal = "The journal of human resources",
        month = "Summer",
        number = 3,
        pages = "437--440",
        title = "Occupational segregation: A defense of human capital predictions",
        volume = 20,
        year = 1985}
    \end{filecontents*}
    
    \addbibresource{sample.bib}
    
    \begin{document}
    
    \nocite{Poggi2008,Polachek1985}.
    
    \printbibliography
    
    \end{document}
    

    enter image description here