How to add an APA-style citation with no author in ConTeXt?

I need to cite some articles which were created by some professional organizations, so no authors or editors are listed:

@Article{noname2012,
author = {},
title = {This is the title},
publisher = {This is the publisher},
year = {2012},
}


I am using the APA style in ConTeXT, setup as follows:

\setupbibtex[database={Bibliography}, sort=author]
\setuppublications[alternative=apa]


Whenever I place a citation, \cite{noname2012} it displays like this:

(noname2012, 2012)


How can I the bibliography display the title instead of the name, when the name and editor fields are empty?

• You mention that the publications were produced by organizations. Could you list the organizations as "corporate" authors? E.g., author = "{Securities and Exchange Commission}". – Mico Mar 16 '13 at 23:43

Here's a minimum working example. It's a slight compromise because it requires you to add the title to your .tex file.

\setupbibtex[database={Bibliography}, sort=author]
\setuppublications[alternative=apa]

\def\citeTitle{\dosingleempty\dociteTitle}
\def\dociteTitle[#1]#2{%
\iffirstargument\cite[inbetween=,left={(#1,\ },right=)][#2]\else
\cite[inbetween=,left=(,right=)][#2]\fi}

\starttext

The Bib\TeX\ file needs to have the nameless author as a nested pair of
empty braces.
\starttyping
@Article{noname2012,
author = {{}},
title = {This is the title},
publisher = {This is the publisher},
year = {2012},
}
\stoptyping

Now, whenever I place a citation, \type{\cite{noname2012}} it displays like
this: \cite{noname2012} which is still unsatisfactory.  If I add an
optional argument and put the label in square brackets,

\type{\cite[inbetween=][noname2012]}

it displays like this: \cite[inbetween=][noname2012]. Still not quite
right, but I can add the title manually,

\type{\cite[inbetween=,left={(This is the title,\ }][noname2012]}

so that it displays like this:
\cite[inbetween=,left={(This is the title,\ }][noname2012].

With the user||defined command \type{\citeTitle}, it looks like this
\citeTitle{noname2012} or like this
\citeTitle[This is the title]{noname2012}

\stoptext


You can always try to use the natbib package along with the \bibliographystyle defined as apalike or newapa. Thus, your code will look like:

\usepackage{natbib}

\bibliographystyle{apalike} % or newapa, depending on what you are using


And then you can use either \citep{authorlabel} (for getting the whole reference in parenthesis) or \citet{authorlabel} (to get the year in parenthesis and the author outside of them). I strongly recommend your to see Section 2.7 of the natbib documentation for more information on this.

• Does that work in ConTeXt? – Village Apr 10 '13 at 11:03

For the citations, it's possible to define a new option for cases where you know there is no author:

% Define a new type of APA citation for title
\definebtx[apa:cite:noauthor][apa:cite:authoryear]
\startsetups btx:apa:cite:noauthor
\btxcitereference
\quotation{\btxflush{title}}
\btxcomma
\btxflush{year}
\stopsetups


So instead of \cite[noname2012], you would use \cite[noauthor][noname2012]. This solution is based on the example on page 52 of the publications manual.

As for the bibliography, you'd probably have to overwrite the basic article definition. For the following, I copy and pasted the standard definition from the source and added a switch to test if there is no author:

% Define a switch in bibliography entry
\startsetups btx:apa:list:article
\doiftextelse{\btxdirect{author}} {
\texdefinition{btx:apa:authoryear}
\texdefinition{btx:apa:title-if-not-placed}
} {
%If no author, use title as first entry
\btxflush{title}
\btxperiod
\btxleftparenthesis
\btxflush{year}
\btxrightparenthesis
\btxperiod
}
\btxdoif {type} {
\btxleftbracket
\btxflush{type}
\btxrightbracketperiod
}
\texdefinition{btx:apa:journal-volume-number-pages}
\texdefinition{btx:apa:url-doi-note}
\stopsetups


If needed, a similar switch could be used in the citation to automatically handle the author/noauthor cases.

Combined together with demonstration:

\startbuffer[ref]
@article{solo,
author = {Lastname, Firstname},
title = {Title with author},
journal = {Journal},
year = {2000},
month = {1},
volume = {1}
}

@article{none,
author = {},
title = {Title with no author},
journal = {Journal},
month = {1},
year = {2000},
volume = {1}
}
\stopbuffer

% Boilerplate to set up references
\usebtxdataset[ref][ref.buffer]
\setupbtx[dataset=ref]

\definebtxrendering[ref]
[dataset=ref,
specification=apa]
\setupbtx[apa:cite]
[alternative=authoryear,
etallimit=1]

% Define a new type of APA citation for title
\definebtx[apa:cite:noauthor][apa:cite:authoryear]
\startsetups btx:apa:cite:noauthor
\btxcitereference
\quotation{\btxflush{title}}
\btxcomma
\btxflush{year}
\stopsetups

% Define a switch in bibliography entry
\startsetups btx:apa:list:article
\doiftextelse{\btxdirect{author}} {
\texdefinition{btx:apa:authoryear}
\texdefinition{btx:apa:title-if-not-placed}
} {
%If no author, use title as first entry
\btxflush{title}
\btxperiod
\btxleftparenthesis
\btxflush{year}
\btxrightparenthesis
\btxperiod
}
\btxdoif {type} {
\btxleftbracket
\btxflush{type}
\btxrightbracketperiod
}
\texdefinition{btx:apa:journal-volume-number-pages}
\texdefinition{btx:apa:url-doi-note}
\stopsetups

% Testing
\starttext

Normal citations: \cite[solo] vs. \cite[none] \\
Noauthor citations: \cite[noauthor][solo] vs. \cite[noauthor][none]

\startsubject[title=Bibliography]
\placelistofpublications[ref][method=dataset]
\stopsection

\stoptext


With the result:

However, as Mico suggested in the comments, it's easier to simply make the organization an author:

\startbuffer[ref]
@article{solo,
author = {Lastname, Firstname},
title = {Title with author},
journal = {Journal},
year = {2000},
month = {1},
volume = {1}
}

@article{none,
author = {{Professional organization XYZ}},
title = {Title with no author},
journal = {Journal},
month = {1},
year = {2000},
volume = {1}
}
\stopbuffer

% Boilerplate to set up references
\usebtxdataset[ref][ref.buffer]
\setupbtx[dataset=ref]

\definebtxrendering[ref]
[dataset=ref,
specification=apa]
\setupbtx[apa:cite]
[alternative=authoryear,
etallimit=1]

% Testing
\starttext

Normal citations: \cite[solo] vs. \cite[none] \\

\startsubject[title=Bibliography]
\placelistofpublications[ref][method=dataset]
\stopsection

\stoptext


With the result: