4

In the following code how can I add a comma after the journal name without changing the style.

\documentclass{article}
\usepackage[backend=bibtex,style=numeric-comp,firstinits=true]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{mynum-compbib.bib}
@article{goss1981simple,
author = "David Goss",
title = "A simple approach to the analytic continuation and values at the negative integers for the Riemann zeta function",
journal= "Proc. Am. Math. Soc.",
volume = "81",
number = "4",
pages = "513-517",
year = 1981,
}
\end{filecontents}
\addbibresource{mynum-compbib.bib}
\renewbibmacro{in:}{\addcomma\addspace}
\DeclareFieldFormat[article]{title}{#1}
\DeclareFieldFormat[unpublished]{title}{#1}
\DeclareFieldFormat[book]{title}{#1}
\DeclareFieldFormat[article]{volume}{\textbf{#1}}
\DeclareFieldFormat{pages}{#1}
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\setunit*{\addcomma\addspace}%
\iffieldundef{number}{}{%
\printtext{no\adddot\addspace}%
}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}}
\begin{document}
\cite{goss1981simple}
\printbibliography
\end{document} 

Currently what I get is:

D. Goss. A simple approach to the analytic continuation and values at the negative integers for the Riemann zeta function, Proc. Am. Math. Soc. 81, no. 4 (1981), 513-517.

What I want is:

D. Goss. A simple approach to the analytic continuation and values at the negative integers for the Riemann zeta function, Proc. Am. Math. Soc., 81, no. 4 (1981), 513-517.

Note the comma after Soc. is what I want.

Secondly how can I change the full stop after the author name into a comma? Thanks

3
  • What happens if you write journal= "Proc. Am. Math. Soc.,", ?
    – juanuni
    Commented Jun 7, 2015 at 2:57
  • 1
    @juanuni: Of course, that will work. But that is not how I have built my collection of bibliographies (there are a large number of references) and I want a way to automatically have a comma.
    – user8735
    Commented Jun 7, 2015 at 3:00
  • For your second problem try \renewcommand*{\labelnamepunct}{\addcomma\space} or more radical (check if you like it!) \renewcommand*{\newunitpunct}{\addcomma\space}.
    – moewe
    Commented Jun 7, 2015 at 6:36

1 Answer 1

8

We will need to do two changes.

First we need to tell biblatex that dots in the journaltitle fields are by no means full stops, but abbreviation dots. This can be done by adding \isdot after the field formatting directive.

\DeclareFieldFormat{journaltitle}{\mkbibemph{#1}\isdot}

See In biblatex, treat periods in journal as abbreviation dots and biblatex - How can I force a colon after a period? for a more thorough explanation and investigation of this problem.

We then need to tell biblatex to print a comma after the journal name, and this can be done via

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\addcomma\space}%
  \iffieldundef{series}
    {}
    {\newunit
     \printfield{series}%
     \setunit{\addspace}}%
  \usebibmacro{volume+number+eid}%
  \setunit{\addspace}%
  \usebibmacro{issue+date}%
  \setunit{\addcolon\space}%
  \usebibmacro{issue}%
  \newunit}

Where in the third line we have swapped \setunit*{\addspace}% for \setunit*{\addcomma\space}%.

MWE

\documentclass{article}
\usepackage[backend=bibtex,style=numeric-comp,firstinits=true]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{goss1981simple,
author = "David Goss",
title = "A simple approach to the analytic continuation and values at the negative integers for the Riemann zeta function",
journal= "Proc. Am. Math. Soc.",
volume = "81",
number = "4",
pages = "513-517",
year = 1981,
}
\end{filecontents}
\addbibresource{\jobname.bib}

\DeclareFieldFormat{journaltitle}{\mkbibemph{#1}\isdot}

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\addcomma\space}%
  \iffieldundef{series}
    {}
    {\newunit
     \printfield{series}%
     \setunit{\addspace}}%
  \usebibmacro{volume+number+eid}%
  \setunit{\addspace}%
  \usebibmacro{issue+date}%
  \setunit{\addcolon\space}%
  \usebibmacro{issue}%
  \newunit}

\renewbibmacro{in:}{\addcomma\addspace}
\DeclareFieldFormat[article]{title}{#1}
\DeclareFieldFormat[unpublished]{title}{#1}
\DeclareFieldFormat[book]{title}{#1}
\DeclareFieldFormat[article]{volume}{\textbf{#1}}
\DeclareFieldFormat[article]{number}{\bibstring{number}~#1}
\DeclareFieldFormat{pages}{#1}
\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  \setunit*{\addcomma\addspace}%
   \printfield{number}%
   \setunit{\addcomma\space}%
   \printfield{eid}}
\begin{document}
\cite{goss1981simple}
\printbibliography
\end{document} 

enter image description here

0

You must log in to answer this question.