1

I'm trying to print all journal titles in my bibliography using title case, while preserving the rest of the entry.

I found this to work for forcing article titles to be sentence case: Sentence case for titles in biblatex and I was wondering whether a similar thing was possible for title case and journal titles. I'm using biblatex.

Reprex:

\documentclass[12pt]{article}

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

\usepackage[
backend=biber,
style=authoryear,
date=year,
]{biblatex}

% Removes language from entries
\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldset=language, null]
    }
  }
}

% Chapter title formatting and spacing
\usepackage{titlesec}
\titleformat{\chapter}[display]
{\bfseries\Huge}                                            
{\filright}
{1ex}{}[]

\begin{filecontents}[force]{\jobname.bib}
@article{ref1,
  author  = {Doe, J. and Dane, D. and Dewy, R.},
  year    = {2000},
  title   = {This and That},
  journal = {Journal of Deep Understanding of Things},
}
@article{ref2,
  author  = {Doe, J. and Dewy, D. and Dane, R.},
  year    = {2000},
  title   = {The Other},
  journal = {Journal of deep understanding of things},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
Some text and a ref \autocite{ref1}.
Then another ref with same first author and year \autocite{ref2}

\printbibliography

\end{document}

So in this example the journal title of ref1 would stay the same, while ref2 would have title case.

0

1 Answer 1

1

biblatex only has a function to convert text to sentence case. It does not offer a function to convert titles to Title Case. (It's the same for classical BibTeX.) See also Implementation of "Title Case" in Bibtex.

This means that titles should be given in Title Case in the .bib file and can be converted to sentence case if required by the bibliography style. (Care needs to be taken with words that should not be lowercased even in sentence case like names or acronyms. See BibTeX loses capitals when creating .bbl file) See What is the proper casing to use when storing titles in the bibliography database? for a more detailed discussion.

So the best solution is to fix your .bib file to have

 journal = {Journal of Deep Understanding of Things},

everywhere.

If you only have a couple of journal names you cite, this can be done with a sourcemap

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=journal, fieldtarget=journaltitle]
      \step[fieldsource=journaltitle,
        matchi={Journal of Deep Understanding of Things},
        replace={Journal of Deep Understanding of Things}]
    }
  }
}

but of course that gets out of hand quickly, if you want to deal with lots of journals.

5
  • Hi, thanks for this. Unfortunately I have quite a lot of journal titles I would like to change (I guess I could do it manually but this would take time), so an automatic solution is preferable. I'd be open to solutions outside of biblatex if you know of any? Mar 2, 2023 at 8:50
  • @ReubenLong JabRef has such a feature, I think. docs.jabref.org/finding-sorting-and-cleaning-entries/… But I'd be wary of automatic solutions here. They don't always get every edge case right. .bib entries should be carefully curated.
    – moewe
    Mar 2, 2023 at 16:03
  • Ah that's a shame. I'm using paperpile, and for some reason journal titles aren't imported with title case into it, so I was hoping there was some easy solution to this in latex. I guess I'll just wait for paperpile to add this feature Mar 3, 2023 at 15:25
  • @ReubenLong Ah, bad luck. But really this is a data quality issue. We have a long list of problems with auto-generated .bib entries: tex.stackexchange.com/q/386053/35864. Best you can do is always check everything carefully on import.
    – moewe
    Mar 4, 2023 at 9:50
  • For Paperpile see forum.paperpile.com/t/… (spoiler: no automatic solution as of 2021).
    – moewe
    Mar 4, 2023 at 9:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .