I know of the option firstinits=true
to abbreviate the first and all middle names in biblatex. What I would like to achieve is to only abbreviate the middle names. So e.g. author = {Smith, John Ethan Jacob}
should be printed as Smith, John E. J.
Please see the MWE based on the answer of Jonathan from this post at the end of this question. I get the following output:
[SD95] Smith, John E. J./Doe, Jain L. Some book title. A Publisher, 1995.
But what I would like to see as output is:
[SD95] Smith, John E. J. ; Doe, Jain L: Some book title. A Publisher, 1995.
The ;
between the author names and the :
between the author names and the book title are specific to the bib style (custom made) I use. But the solution below doesn't respect this custom style. Any idea how to achieve the desired abbreviation, but don't loose the bib style?
MWE:
\documentclass{article}
\usepackage[backend=biber,style=din, autocite=footnote]{biblatex}
\begin{filecontents*}{bibliography.bib}
@BOOK{SD1995,
author = {Smith, John Ethan Jacob and Doe, Jain Lauren},
title = {Some book title},
year = {1995},
publisher = {A Publisher}
}
\end{filecontents*}
\addbibresource{bibliography.bib}
\usepackage[T1]{fontenc}
\def\bibnamedelima{ }%
\def\bibnamedelimb{ }%
\DeclareNameFormat{author}{%
\ifblank{#5}{}{#5\addspace}% prefix if applicable
#1% last name
\edef\firstname{#3}%
\ifblank{#3}{}{\addcomma\addspace\expandafter\first{\firstname}}%
\ifthenelse{\value{listcount}<\value{liststop}}%
{\addslash}{}%
}
\DeclareNameFormat{labelname}{%
\ifblank{#5}{}{#5\addspace}% prefix if applicable
#1% last name
\edef\firstname{#3}%
\ifblank{#3}{}{\addcomma\addspace\expandafter\first{\firstname}}%
\ifthenelse{\value{listcount}<\value{liststop}}%
{\addslash}{}%
}
\makeatletter
\def\@empty{}
\def\first#1{\expandafter\@first#1 \@nil}
\def\@first#1 #2\@nil{#1\addspace%
\if\relax\detokenize{#2}\relax\else\@initials#2\@nil\fi}
\def\initials#1{\expandafter\@initials#1 \@nil}
\def\@initials#1 #2\@nil{%
\initial{#1}%
\def\NextName{#2}%
\ifx\@empty\NextName\relax%
\else\@initials#2\@nil\fi}
\def\initial#1{\expandafter\@initial#1\@nil}
\def\@initial#1#2\@nil{#1.\addspace}
\makeatother
\begin{document}
\null
\vfill
How the citation look like: \cite{SD1995}
\clearpage
\printbibliography
\end{document}
Edit
Please look here for the din style I'm using in the MWE. With this style I get two white spaces between the first author and the separating ;
, when I use the modification by Andrew Swann. Without the modification there is only one white space. I'm now looking for a solution to this problem.
Smith, John: The handbook of
butSmith, John E. The handbook of