# Citation: How to add location and publisher fields to the article type of the biblatex package?

In my academic writing I have to use the publisher and location fields to cite an article from a journal.

MWE:

\documentclass[ngerman]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage{
babel,
csquotes
}
\usepackage[
backend    = biber,
sortlocale = auto,
sorting    = nty,
style      = authoryear-comp
]{biblatex}

\DeclareFieldFormat[article]{publisher}{#1}
\DeclareFieldFormat[article]{location}{#1}
\DeclareBibliographyDriver{article}
{
\newunit\newblock
\printlist{publisher}
\newunit\newblock
\printlist{location}
}

\begin{filecontents}{\jobname.bib}
@article{
Sur,
author       = {Surname, Name},
title        = {Title},
journaltitle = {Journaltitle},
year         = {2000},
}
\end{filecontents}

\begin{document}

Test \autocite[1]{Sur}.
\printbibliography

\end{document}


But this breaks the bibliography. I think the \Declare lines are overwriting the article type. What is the right way?

• Usually @article sources do not show the publisher or location. See for example the big citation styles APA, Chicago Manual of Style, MLA. So if you were not explicitly asked to include the publisher and location for article citations I would not bother with it. (And even if you were asked to you might point whoever asked to these citation styles and the traditions in your field. I think you will be hard pressed to find a paper that prints location and publisher for @articles) – moewe Jun 29 '18 at 9:32
• To explain what happens:\DeclareBibliographyDriver{article} defines how the entire reference looks in the bibliography. So you overwrite the standard definition of @articles to only print the location and publisher. Which usually gives sub-par output as you observed. – moewe Jun 29 '18 at 9:33
• Hello @moewe! The reason of my question is as following. This academic writing is a semester exercise of a course on my university. The specialist area which is teaching this course invokes on the DIN ISO 690:2013. So I have to do this way. From the biblatex manual I understood that an article don't need a location and publisher and you confirmed this. But however, my university is the master of disaster. I turn to book type for this work and that's it. – Su-47 Jul 1 '18 at 5:48
• I don't have a copy of ISO690 handy, but uni-saarland.de/fileadmin/user_upload/Professoren/…, help.citavi.com/knowledge-base/article/iso-690 and thesius.de/blog/articles/zitieren-ingenieur-ieee-din-iso-690 all do not require location and publisher for @articles. BTW: Raw ISO 690 does nor require a particular style of punctuation or formatting, the examples in the text are just for illustration. If you university insists on certain formatting and punctuation that is on top of ISO 690. – moewe Jul 1 '18 at 9:07
• Hello @moewe! Maybe it's obvious, but I just go down through the norm and collect all relevant things to my question. The norm says that a journal is a periodical with articles. The place should always be specified and it is required. Also the publisher is required. The examples are inconsistent, like you said. I ignore the examples. – Su-47 Jul 7 '18 at 7:58

## Why do the lines from the MWE in the question not work?

The first point is that the example .bib entry does not actually have a publisher or location field, naturally we can't get a publisher or location out of that.

The second point is actually more subtle and involves https://github.com/plk/biblatex/issues/586. Due to the implementation of \DeclareBibliographyDriver the macro can't have whitespace of any kind between its two arguments. So it must be used as in

\DeclareBibliographyDriver{article}{%
...
}


Thirdly and most importantly \DeclareBibliographyDriver indeed overwrites the current definition of the driver (as you assumed), so with the definition from the question you instruct biblatex to print only the publisher and location for @articles in the bibliography. This is not what you want. Instead you must either insert the new lines into the driver while preserving the rest or redefine the entire driver. A driver normally consists of many calls to different bibmacros and \print... commands. You can find the definitions for the standard styles in standard.bbx.

## What is the right way?

Since the definitions of the drivers is usually quite complex and long, it is often easier to patch them than to rewrite them. The xpatch package makes it quite easy to do that. So you could use \xpatchbibmacro to replace a particular bit of the driver with another bit (that would then include new calls to macros you want to add). See Efficiently applying the same patch to several bibdrivers and Add publisher to online source with biblatex/biber? for examples of how to use \xpatchbibdriver and Biblatex's bibmacros, bibliography drivers, formats - patch or redefine? for a general discussion on patching vs. redefining.

In this particular case it is actually a tiny bit easier to modify a bibmacro directly (often that is possible, but don't count on that in general).

\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\usebibmacro{publisher+location+date}%
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\usebibmacro{volume+number+eid}%
\usebibmacro{issue}%
\newunit}


This includes the publisher, location and date directly after the journaltitle. That set-up is consistent with the requirements of Table B.4 in section B.4.2 Contribution within a serial of ISO 690:2010(E) (Third edition, 2010-06-15)

## A few comments on ISO 690

Allow me to add a few comments about ISO 690 here.

The text of the norm allows quite some leeway and wiggle room - either explicitly by mentioning other options or implicitly by not mentioning a certain thing at all. An explicit example is the order of names in the bibliography. Only the first name in a name list needs to be in "surename, forename" order (that is family-given in biblatex parlance), the second and subsequent names may be recorded in "natural order" - but they need not be (at least that is how I read "may be"). Implicitly, the norm does not specify the separator/delimiter between names even though the examples consistently use an "and" (with Oxford comma) before the last name and a comma for all others.

Additionally, the publicly available summary on the ISO website states

ISO 690:2010 does not prescribe a particular style of reference or citation. The examples used in ISO 690:2010 are not prescriptive as to style and punctuation.

And later on in §4.4 the standard emphasises that the punctuation scheme used throughout the document is "purely illustrative" and is not part of the standard.

Now it is not clear what exactly falls under the definition of "style" here, but I would have expected that certain decisions such as ALL CAPS for names and even the formats of titles are not part of the standard. There is no point at which the standard says to use all caps for names and italics for some titles, this is only conveyed through the examples.

Some examples are even inconsistent, for example these in §5.4.1 (also when compared to §§5.2.1, 5.3.1): One of the examples places no comma between the last name and the first name initial, while all others do; another example does not use all caps for a "corporate" name while all others do.

The standard rigorously defines the elements of a reference and the order in which they should be given. Additionally it gives some guidance as to how some of these elements should be displayed.

So often when you get second-hand accounts of ISO 690 that account will have added their own interpretation on top of the actual standard. What's more I have been informed that some local translations of the standard (DIN ISO 690, ČSN ISO 690) also add additional requirements or make the interpretation stricter and more narrow.

There is a biblatex style biblatex-iso690 which follows the (stricter) Czech interpretation of the norm.

### publisher and location for @articles

None of the big reference styles that I know of (APA, Chicago, MLA) require the publisher or location for an @article. The biblatex data model does not even consider these two fields for @article.

And even ISO is not so sure about them. While table B.4 in section B.4.2 lists the publisher and location as required (as mentioned above) none of the examples in C.6 and C.7 have the two fields listed. For what it is worth most of the second-hand accounts of ISO 690 I could find also ignore the publisher and location for articles.

\documentclass[ngerman]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage{babel,csquotes}
\usepackage[
backend    = biber,
style      = authoryear-comp
]{biblatex}

\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\usebibmacro{publisher+location+date}%
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\usebibmacro{volume+number+eid}%
\usebibmacro{issue}%
\newunit}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{sur,
author       = {Surname, Name},
title        = {Title},
journaltitle = {Journaltitle},
year         = {2000},
location     = {Ort},
publisher    = {Verlag},
}
\end{filecontents}


Note that with style=authoryear and its drived styles it makes little sense to sort by name-title-year (sorting=nty), sortingy=nyt is more natural and the default. Furthermore ISO 690 dictates chronological sorting.
• Hello @moewe! Thank you for your answer! This what I call effort, this answer covers all aspects of the question! Very useful hint (nyt vs. nty), thank you! Below of my question I commented my research to the norm. I also edited my question. – Su-47 Jul 7 '18 at 8:00