# remove comma between address/publisher and year and after parentheses

I need citations (mostly) as footnotes in the following form:

Book first appearance:

F. Author ­– T.S. Author, The Longtitle and not the Shorttitle, Address 1965, 4.

Second appearance:

F. Author ­– T.S. Author, Shorttitle (cf. nt. 1) 5.

Article in journal first appearance:

A. Author, "Title of the Article", Journal Title 65 (1968) 113­-126.

So far I got to:

F. Author ­– T.S. Author, The Longtitle and not the Shorttitle, Address, 1965, 4.

F. Author ­– T.S. Author, Shorttitle (cf. nt. 1), 5.

A. Author, "Title of the Article", Journal Title 65 (1968), 113­-126.

As you see, I didn't achieve to get rid of the commas between address and year and after the two parentheses. So far I got with the following code:

\documentclass{scrartcl}
\begin{filecontents*}{mybib.bib}
@BOOK{Abook,
author = "First Author and The Second Author",
title = {The Longtitle and not the Shorttitle},
shorttitle = {Shorttitle},
publisher = "The Publisher",
year = "1965"}
@article{Aarticle,
Author = {Article Author},
Journal = {Journal Title},
Pages = {113-126},
Title = {Title of the Article},
Volume = {65},
Year = {1968}}
\end{filecontents*}

\usepackage[style=verbose-note,firstinits=true]{biblatex}

\renewbibmacro*{footcite:note}{%
\ifnameundef{labelname}
{\printfield{label}}
{\printnames[first-last]{labelname}}%
{\setunit*{\nametitledelim}%
\printfield[title]{labeltitle}}%
\setunit*{\space\printtext{(}}%
\printtext{%
\ref{cbx@\csuse{cbx@f@\thefield{entrykey}}})%
\iftoggle{cbx:pageref}
{\ifsamepage{\the\value{instcount}}
{)\csuse{cbx@f@\thefield{entrykey}}}
{}
\pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}}
{}}}

\renewcommand*{\mkbibnamefirst}[1]{{\iffirstinits{\let~\-}{}#1}}

\renewcommand*{\multinamedelim}{~--\space}
\renewcommand*{\finalnamedelim}{~--\space}

\renewbibmacro{in:}{%
\ifentrytype{article}{}{%
\printtext{\bibstring{in}\intitlepunct}}}

\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\DeclareFieldFormat{pages}{#1}

\AtEveryCitekey{%
\clearlist{publisher}%
}

\DefineBibliographyStrings{english}{%
seenote = {cf. nt.},
}

\bibliography{mybib}

\begin{document}

Here and there. \footcite[4]{Abook}

There and here. \footcite[5]{Abook}

Up and down. \footcite{Aarticle}

\end{document}


My first attempt to get any further was to use \ifciteseen the following way:

\renewcommand*{\postnotedelim}{%
\ifciteseen
{\space}


This does not work as also the first appearance is treated as already seen (I think because it is nested with another \ifciteseen inside \newbibmacro*{footcite}.

So my second try was:

\newbibmacro*{footcite}{%
\usebibmacro{cite:citepages}%
\ifciteseen
{\renewcommand*{\postnotedelim}{\space}
{\iffieldundef{shorthand}
{\usebibmacro{footcite:note}}
{\usebibmacro{footcite:shorthand}}}}
{\usebibmacro{footcite:full}%
\usebibmacro{footcite:save}}}


This solved part of the problem, but created another one: It retained the comma in the first appearance of the book (god), removed the comma in the second appearance (god), added a space between the footnote number and the citation (bad).

For the commas between the address and year and after the parenthesis in the article citation I didn't find any idea how to proceed.

So any suggestions how to get rid of the three commas mentioned, without touching the others?

-
I'm sorry but this my first time to post here and I should obviously have used "pre" instead of "code", so my code got all mixed up. I could post it again if that helps. –  newtothis Dec 20 '12 at 21:15
It appears to me you have two accounts with the same name, one of which you used to ask the question, and the other to "answer" it. –  Vivi Dec 20 '12 at 21:24

You need to insert \nopunct into appropriate places for these two different problems.

For the year, this is in the biblatex macro issue+date and you can insert it before the final \newunit:

\renewbibmacro{issue+date}{%
\printtext[parens]{%
\iffieldundef{issue}
{\usebibmacro{date}}
{\printfield{issue}%
\usebibmacro{date}}}%
\nopunct\newunit}


For the see note, it should be part of your redefinition of footnote:cite after your closing parenthesis. I would also suggest moving the opening parenthesis into the same block.

Putting this into your code, we get:

from

\documentclass{scrartcl}
\begin{filecontents*}{mybib.bib}
@BOOK{Abook,
author = "First Author and The Second Author",
title = {The Longtitle and not the Shorttitle},
shorttitle = {Shorttitle},
publisher = "The Publisher",
year = "1965"}
@article{Aarticle,
Author = {Article Author},
Journal = {Journal Title},
Pages = {113-126},
Title = {Title of the Article},
Volume = {65},
Year = {1968}}
\end{filecontents*}

\usepackage[style=verbose-note,firstinits=true]{biblatex}

\renewbibmacro*{footcite:note}{%
\ifnameundef{labelname}
{\printfield{label}}
{\printnames[first-last]{labelname}}%
{\setunit*{\nametitledelim}%
\printfield[title]{labeltitle}}%
\setunit*{\space}%
\printtext{%
(%
\ref{cbx@\csuse{cbx@f@\thefield{entrykey}}})\nopunct%
\iftoggle{cbx:pageref}
{\ifsamepage{\the\value{instcount}}
{)\csuse{cbx@f@\thefield{entrykey}}}
{}
\pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}}
{}}}

\renewcommand*{\mkbibnamefirst}[1]{{\iffirstinits{\let~\-}{}#1}}

\renewcommand*{\multinamedelim}{~--\space}
\renewcommand*{\finalnamedelim}{~--\space}

\renewbibmacro{in:}{%
\ifentrytype{article}{}{%
\printtext{\bibstring{in}\intitlepunct}}}

\renewbibmacro{issue+date}{%
\printtext[parens]{%
\iffieldundef{issue}
{\usebibmacro{date}}
{\printfield{issue}%
\usebibmacro{date}}}%
\nopunct\newunit}

\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\DeclareFieldFormat{pages}{#1}

\AtEveryCitekey{%
\clearlist{publisher}%
}

\DefineBibliographyStrings{english}{%
}

\bibliography{mybib}

\begin{document}

Here and there. \footcite[4]{Abook}

There and here. \footcite[5]{Abook}

Up and down. \footcite{Aarticle}

\end{document}

-

I solved part of the problem (the extra space) by rewriting the \renewbibmacro*{footcite}:

\renewbibmacro*{footcite}{%
\usebibmacro{cite:citepages}%
\ifciteseen%
{\renewcommand*{\postnotedelim}{\space}\iffieldundef{shorthand}                                 {\usebibmacro{footcite:note}}
{\usebibmacro{footcite:shorthand}}}
{\usebibmacro{footcite:full}%
\usebibmacro{footcite:save}}}


So what remains to be solved is the comma between address and year and after the parenthesis in the article citation.

-
I enabled cookies and hope to be recognized as the same user from now on. –  newtothis Dec 21 '12 at 11:12
Andrew's solution is of course much better. And points to the last step to the full solution. To remove the comma between address and year one has recode publisher+location+date. (Changing \addcomma\space to \addspace at the approriate place.) –  newtothis Dec 21 '12 at 16:05