6

I am using biblatex for bibliography management, with Biber as a backend and style=mla-new. I have the following bibliographic entry in my *.bib:

@inbook{theodyssey,
  title = "The Odyssey",
  author = "Homer",
  translator = "Stanley Lombardo",
  booktitle = "The Norton Anthology of Western Literature",
  edition = "9",
  pages = "291-581",
  publisher = {W. W. Norton \& Company},                                                                                                        
  year = "2014"
}

Almost everything prints correctly. However, the bibliographic entry looks like this:

Homer, "The Odyssey", The Norton Anthology of Western Literature, translated by
  Stanley Lombard, 9th ed., W. W. Norton &, 2014, pp. 291-581

Notice how the word "company" is stripped off of W. W. Norton & Company. I can't figure out how to fix this, or even why it's happening.

  • 1
    Welcome to TeX.SX! Indeed, mla-new includes \step[fieldsource=publisher, match=\regexp{Company|Co\.|Corporation|Corp\.|Incorporated|Inc\.|Limited|Ltd\.}, replace={}] in a sourcemap. That is, it strips all of those terms from publisher and means this is a style requirement/decision. Furthermore, I'm not sure it is easy to override it. mla doesn't do the same, if that's an alternative for you. – gusbrs Mar 29 '18 at 0:46
  • Thank you, switching to mla from mla-new resolved the issue. I had it set to mla-new because I sometimes use web sources and prefer the new style in that case. – AstroEngiSci Mar 29 '18 at 1:04
11

The style mla-new includes the following step in its StyleSourcemap:

\step[fieldsource=publisher, match=\regexp{Company|Co\.|Corporation|Corp\.|Incorporated|Inc\.|Limited|Ltd\.}, replace={}]

which strips all of those terms from the publisher field. As this is done with a sourcemap, it is hard to override it, as it affects the data itself.

This must mean, though, that this is part of the requirements of the MLA style in it's 8th edition, which is implemented by mla-new.

The style mla does not include such a sourcemap step, and could be used if that is an alternative for you, and you don't want to comply with this characteristic of the newest version of the style.

However, the biblatex-mla documentation mentions the following:

This beta update is for testing compatibility with the 8th edition of the MLA Handbook, published April 2016. This current version supports both the old edition (by using style=mla in the preamble) and the newer edition (using style=mla-new); an upcoming version of biblatex-mla will deprecate support for the 7th edition in favor of the 8th.

An alternative with mla-new would be to cheat the sourcemap substituting the word with a macro, as in:

\documentclass{article}

\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=mla-new]{biblatex}

\usepackage{filecontents}

\newcommand*{\Co}{Company}

% filecontents is used here for convenience, in your actual document, the entry would be in your regular .bib file
\begin{filecontents}{\jobname.bib}
@inbook{theodyssey,
  title = "The Odyssey",
  author = "Homer",
  translator = "Stanley Lombardo",
  booktitle = "The Norton Anthology of Western Literature",
  edition = "9",
  pages = "291-581",
  publisher = {W. W. Norton \& \Co},
  year = "2014"
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

\nocite{*}

\printbibliography

\end{document}

enter image description here

Update: I found a way to override the sourcemap step, using the sequence in which the different types of sourcemaps are applied. (user) \DeclareSourcemaps are run first, so we can use this to copy the original data from publisher to the field listf. \DeclareStyleSourcemap comes second. Luckily they can be used multiple times, and are applied in order of definition. As the original one is defined with the style (that is, with the call to biblatex), we can define a second one later, copying back the data from listf to publisher.

\documentclass{article}

\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=mla-new]{biblatex}

\usepackage{filecontents}

\DeclareSourcemap{
    \maps[datatype=bibtex]{
        \map{
            \step[fieldsource=publisher, fieldset=listf, origfieldval]
        }
    }
}

\DeclareStyleSourcemap{
    \maps[datatype=bibtex]{
        \map[overwrite]{
            \step[fieldsource=listf, fieldset=publisher, origfieldval]
        }
    }
}

% filecontents is used here for convenience, in your actual document, the entry would be in your regular .bib file
\begin{filecontents}{\jobname.bib}
@inbook{theodyssey,
  title = "The Odyssey",
  author = "Homer",
  translator = "Stanley Lombardo",
  booktitle = "The Norton Anthology of Western Literature",
  edition = "9",
  pages = "291-581",
  publisher = {W. W. Norton \& Company},
  year = "2014"
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

\nocite{*}

\printbibliography

\end{document}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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