4

Consider the following minimal working example:

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage[american]{babel}
\usepackage{biblatex}

\renewcommand*{\newunitpunct}{\addcomma\addspace}
\renewcommand*{\newblockpunct}{\adddot\addspace}
\renewcommand*{\finentrypunct}{\addperiod}

\DeclareBibliographyDriver{unpublished}{%
  \printnames{author}%
  \newblock%
  \printfield{eventtitle}%
  \newunit%
  \printdate%
  \finentry%
}

\addbibresource{my.bib}


\begin{document}

\fullcite{something}

\end{document}

with associated .bib file:

@unpublished{something,
  author       = {Myself, Me and Yourself, You},
  title        = {Some Awesome Work},
  eventtitle   = {Workshop on Awesome Stuff},
  location     = {Top Secret Location},
  date         = {2018-09-07}
}

Compiling the above gives: "Me Myself and You YourselfWorkshop on Awesome Stuff, Sept. 7, 2018"

Even though \newunit inserts the specified punctuation, why are \newblock and \finentry not printing the periods and spaces as specified in the respective \renewcommands?

1 Answer 1

2

Both \finentry and \newblock are redefined in \fullcite. This is explained on p. 277 of the biblatex manual in the documentation for \AtUsedriver; but to understand that this is relevant here you also need to know about the implementation of \fullcite that is shortly explained on p. 287. You can see more or less what you expect when you use \printbibliography.

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage[american]{babel}
\usepackage{biblatex}

\renewcommand*{\newunitpunct}{\addcomma\addspace}
\renewcommand*{\newblockpunct}{\adddot\addspace}
\renewcommand*{\finentrypunct}{\addperiod}

\DeclareBibliographyDriver{unpublished}{%
  \printnames{author}%
  \newblock%
  \printfield{eventtitle}%
  \newunit%
  \printdate%
  \finentry%
}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@unpublished{something,
  author       = {Myself, Me and Yourself, You},
  title        = {Some Awesome Work},
  eventtitle   = {Workshop on Awesome Stuff},
  location     = {Top Secret Location},
  date         = {2018-09-07}
}
\end{filecontents}

\addbibresource{\jobname.bib}


\begin{document}
\fullcite{something}

\printbibliography
\end{document}

enter image description here

Now you could redefine \AtUsedriver and tell it not to disable \finentry and \newblock,

\makeatletter
\AtUsedriver*{%
  \let\abx@macro@bibindex\@empty
  \let\abx@macro@pageref\@empty}
\makeatother

but I would at least suggest to consider a different change before you do that.

It is more idiomatic to use

\newunit\newblock

instead of a lone \newblock. In fact \newblock is never used on its own without a \newunit or \setunit in the standard styles.

While \newblockpunct may look like a good macro to use in order to obtain two different levels of unit punctuation, its use in the standard styles makes me think that it would not be too much of a success. It is just used too often. Now that is just my personal opinion and I have no good alternative to offer you, so feel free to ignore this bit of advice.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .