# biblatex: No period after book and collection titles

I have been trying to modify existing biblatex styles to match the PNAS citation guidelines and I have an issue with the title delimiter.

PNAS expects book and collection citations to be of this format:

Doe J (<year>) \emph{<booktitle>} (<publisher>: <address>).

And journal articles of this format:

Doe J (<year>) <title>. \emph{<journaltitle>} <volume>(<number>):<pagerange>.

I have managed to achieve most of this with the help Barbara Beeton, percusse and other gurus.

But I haven't figured out how to have journal titles followed by period+space and book/collection titles only by space.

This is what I have so far:

Apologetically, I am offering a rather long (M)WE containing all the changes I have made so far to achieve this outcome. I do this to avoid a conflict between what I already changed and the solution you suggest.

Also, since I am a n00b, please do let me know if I have any silly mistakes in the modifications I have made.

# MWE:

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents}{bibliography.bib}
@Article{a:agrawal:2001:01,
title           = {Phenotypic Plasticity in the Interactions and Evolution of Species},
author          = {Agrawal, Anurag A.},
journal         = {Science},
year            = {2001},
month           = oct,
volume          = {294},
number          = {5541},
pages           = {321--326},
}

@Book{b:darwin:1859:01,
title           = {On the Origin of Species by Means of Natural Selection or the Preservation of Favoured Species in the Struggle for Life},
author          = {Darwin, Charles},
publisher       = {John Murray},
year            = {1859},
}
\end{filecontents}

\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage[%
backend=biber,
useprefix,
citestyle=numeric,
bibstyle=authoryear,
sorting=none,
firstinits=true,
uniquename=init,
terseinits=true,
dashed=false,
]{biblatex}

%% =============================================================================
%% PNAS Style
%% =============================================================================
\AtEveryBibitem{\clearfield{month}} % Do not show month in bibliography.
\AtEveryCitekey{\clearfield{month}} % Do not show month in citations.

% Comma-separated authors, last then first name.
\renewcommand*{\finalnamedelim}{%
\renewcommand*{\revsdnamepunct}{}
\DeclareNameAlias{sortname}{last-first}

% No quotes or italics in titles, except books and collections in italics.
\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,
thesis,unpublished]{title}{#1}
\DeclareFieldFormat[book,collection]{title}{\emph{#1}}

% Journal titles in italics.
\DeclareFieldFormat{journaltitle}{\emph{#1}}
\DeclareFieldFormat{issuetitle}{\emph{#1}}
\DeclareFieldFormat{maintitle}{\emph{#1}}

% Print publisher, then location, separated by comma in parentheses.
\renewbibmacro*{publisher+location+date}{%
\printtext[parens]{%
\printlist{publisher}%
\iflistundef{location}
\printlist{location}%
\usebibmacro{date}%
}\newunit%
}

% Remove "in:" for article entries.
\renewbibmacro*{in:}{%
\ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}

% Remove page prefixes.
\DeclareFieldFormat{pages}{#1}

% Print volume, followed by number in parentheses.
\DeclareFieldFormat[article]{number}{\mkbibparens{#1}}
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\printfield{number}}

% Colon for volume(number):pages delimiter.
\renewcommand*{\bibpagespunct}{%

\defbibenvironment{bibliography}
{\list
{\printtext[labelnumberwidth]{%
\printfield{prefixnumber}%
\printfield{labelnumber}}}
{\setlength{\labelwidth}{\labelnumberwidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}%
\renewcommand*{\makelabel}[1]{\hss##1}}
{\endlist}
{\item}

% Omit authoryear disambiguation.
\AtEveryBibitem{\clearfield{extrayear}}

\begin{document}
\nocite{*}
\printbibliography
\end{document}


therefor you have to modify the bibdriver for the entrytype book in standard.bbx. You can easily exchange parts from macros, especially biblatex-macros, with the package xpatch.
\usepackage{xpatch}