I would like to consistently have a comma between the journal and volume number for article references using biblatex with biber as the backend. Unfortunately, the punctuation between the journal and volume is not consistent. Journals whose last word is abbreviated have no comma between the journal and the volume, and the word "Vol." is capitalized. Journals whose last word is not abbreviated have a comma and the word "vol." is not capitalized. I can fix the capitalization by un-commenting the commented lines in the below MWE, but the comma problem is quite perplexing. Apologies if this fix is in an answer somewhere, but I cannot find it (or at least, I don't know what to search for!).
Current output:
[1] First Author. “Blah Blah 2”. In: Am. J. Phys. Vol. 72, no. 3 (Mar. 2004),
pp. 367–375.
[2] Second Author. “Blah blah”. In: Energy Fuel, vol. 27, no. 12 (Dec. 2013),
pp. 7778–7789.
Expected output:
[1] First Author. “Blah Blah 2”. In: Am. J. Phys., vol. 72, no. 3 (Mar. 2004),
pp. 367–375.
[2] Second Author. “Blah blah”. In: Energy Fuel, vol. 27, no. 12 (Dec. 2013),
pp. 7778–7789.
MWE:
\documentclass{article}
\usepackage{filecontents}
\usepackage[
backend=biber,
citestyle=numeric-comp,
]{biblatex}
\addbibresource{\jobname}
% \DefineBibliographyStrings{english}{%
% volume = {\lowercase{v}ol\adddot}, % avoid capitalization after dots.
% }
\DeclareFieldFormat[article]{volume}{\bibstring{volume}\addspace #1}
\DeclareFieldFormat[article]{number}{\bibstring{number}\addspace #1}
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\setunit{\addcomma\space}%<---- was \setunit*{\adddot}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}}
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\addcomma\addspace}%<---- was \setunit*{\addspace}%
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\setunit{\addspace}}%
\usebibmacro{volume+number+eid}%
\setunit{\addspace}%
\usebibmacro{issue+date}%
\setunit{\addcolon\space}%
\usebibmacro{issue}%
\newunit}
\begin{filecontents*}{\jobname.bib}
@article{York2004,
author = {Author, First},
journal = {Am. J. Phys.},
month = mar,
number = {3},
pages = {367--375},
title = {{Blah Blah 2}},
volume = {72},
year = {2004}
}
@article{Baumgardner2013a,
author = {Author, Second},
journal = {Energy Fuel},
month = dec,
number = {12},
pages = {7778--7789},
title = {{Blah blah}},
volume = {27},
year = {2013}
}
\end{filecontents*}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

journalinYork2004ends with a.dot. The dot is then treated as such to avoid double punctuation. – moewe Apr 09 '14 at 14:42