7

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},
    address = {Miami}
}

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?

Village
  • 13,603
  • 23
  • 116
  • 219
  • 2
    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

3 Answers3

1

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},
    address = {Miami}
}
\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
  • The following answer may also be relevant: (http://tex.stackexchange.com/a/352688/31316) –  Mar 13 '17 at 14:35
1

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
\loadbtxdefinitionfile[apa]
\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:

enter image description here

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
\loadbtxdefinitionfile[apa]
\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:

enter image description here

ssokolen
  • 1,718
  • 6
  • 13
0

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
\bibliography{bibliography} % your bibliography.bib file

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.

Mario S. E.
  • 18,609