Unconventional bibliography style with BibLaTeX

Here is a solution based on https://tex.stackexchange.com/a/83891/16895

\documentclass{article}
\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@Book{a,
  author =    {Nahin, Paul J.},
  title =     {An Imaginary Tale The Story Of [The Square Root Of Minus One]},
  year =      {2010},
  publisher = {Princeton University Press},
  location =  {Princeton, NJ},
}

@Book{b,
  author =    {Nahin, Paul J.},
  title =     {Dr. Euler's Fabulous Formula Cures Many Mathematical Ills},
  year =      {2011},
  publisher = {Princeton University Press},
  location =  {Princeton, NJ},
}

@Book{c,
  title =     {The Princeton Companion To Mathematics},
  year =      {2008},
  editor =    {Timothy Gowers},
  publisher = {Pr},
  location =  {Princeton, NJ},
}

@Book{d,
  author =    {Larson, Ron and Edwards, Bruce H.},
  title =     {Calculus},
  year =      {2014},
  publisher = {Brooks/Cole, Cengage Learning},
  location =  {Boston, MA},
}

@Book{e,
  author =     {Euclid},
  title =      {The Elements, Books I--XIII. Complete and Unabridged},
  translator = {Thomas L. Heath},
  location =   {New York},
  keywords =   {classic},
  shorthand =  {Elms},
}

@Book{f,
  author =     {Euclid},
  title =      {The Elements, Books I--XIII. Complete and Unabridged},
  year =       {2006},
  translator = {Thomas L. Heath},
  location =   {New York},
  keywords =   {classic},
}  
\end{filecontents}


\usepackage[utf8]{inputenc}
\usepackage{biblatex}

\addbibresource{\jobname.bib}

\makeatletter
\newcommand{\@currentauthor}{}
\newcommand{\@current}{}
\newlength{\mybibindent}
\setlength{\mybibindent}{3em}

\renewcommand{\finalnamedelim}{\addspace\&\addspace}


\AtEveryBibitem{%
  \savename{labelname}{\@current}%
  \ifdefstrequal{\@currentauthor}{\@current}
    {\par}
    {\item[]%
      \usebibmacro{author-or-title}\par}%
    \usedriver{}{special}%
    \hspace*{-\mybibindent}\makebox[\mybibindent][l]{\usebibmacro{referencelabel}}%
}

\newbibmacro{author-or-title}{%
  \ifnameundef{author}
    {\printfield{title}}
    {\printnames[family-given]{labelname}}
}

\newbibmacro{referencelabel}{%
  \ifkeyword{classic}
    {\iffieldundef{shorthand}
      {--}
      {\printfield{shorthand}}}%
    {\printdateextra}%
}

\DeclareBibliographyDriver{special}{%
\savename{labelname}{\@currentauthor}%
}
\makeatother

\renewbibmacro{author/translator+others}{}
\renewbibmacro{author/editor+others/translator+others}{}

\defbibenvironment{bibliography}
  {\list
    {}
    {\setlength{\itemindent}{-\mybibindent}%
      \setlength{\leftmargin}{\mybibindent}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}}
  {\endlist}
  {}

\begin{document}
Hello world  \nocite{*}
\printbibliography

\end{document}

The main tricks is to get the format for the bibliography. The key trick is to store the value current and previous label name to determine if we have a new authors or the author(s) of the current entry are the same as the previous one.

Then simple conditionals can be used to determine whether to use the names of the authors or the title of the entry. Similar for classic works. Notice, that I have use a keyword to determine if a work is a classic or not (otherwise it is not clear to me how to distinguish a the case of a non-classical with shorthand with date from a classic with shorthand, but the date is the date of the modern publication).

Here is the output:

enter image description here

Tags:

Biblatex