3

I want to print a list of shorthands of the cited literature. This list will be part of the frontmatter, and all of the references in this list will be from the same author. As the complete details of the references will also be included in the bibliography at the end of the document, I would like to suppress the author in this shorthand list.

Is it possible to suppress certain fields when printing the shorthands OR, conversely, is it possible to specify which fields should be printed in this list? I do not want to change any settings that would also affect the bibliography at the end of the document.

Here is the MWE:

\begin{filecontents}{test.bib}
@book {gramsci1971,
author = {Gramsci, Antonio},
title = {Selections from the Prison Notebooks},
location = {London},
year = {1971},
translator = {Hoare, Quintin and Smith, Geoffrey Nowell},
editor = {Hoare, Quintin and Smith, Geoffrey Nowell},
publisher = {Lawrence \& Wishart},
shorthand = {SPN}
}

@book {gramsci1995,
author = {Gramsci, Antonio},
title = {Further Selections from the Prison Notebooks},
location = {London},
year = {1995},
translator = {Boothman, Derek},
editor = {Boothman, Derek},
publisher = {Lawrence \& Wishart},
shorthand = {FS}
}
\end{filecontents}

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[style=authoryear-icomp, bibstyle=authoryear, autocite=inline, backend=biber]{biblatex}

\addbibresource{test.bib}

\begin{document}
Some text with a citation \autocite[12]{gramsci1971}, and some further text with another citation \autocite[353]{gramsci1995}.

\printbiblist[title={Works cited by Antonio Gramsci}, sorting=ynt]{shorthand}

\printbibliography
\end{document}

1 Answer 1

4

You can modify the shorthand driver

\makeatletter
\DeclareBibliographyDriver{shorthand}{%
  \usedriver
    {\clearname{author}\def\do##1{\togglefalse{blx@use##1}}\abx@donames}
    {\thefield{entrytype}}%
  \finentry}
\makeatother

or even make it more compact

\DeclareBibliographyDriver{shorthand}{%
  \usebibmacro{title}%
  \newunit
  \printdate
  \finentry}

of course this can be completely customised.


Alternatively, you can modify the automatically created shorthand bibenvironment to forget the author and not print the editor in her stead

\makeatletter
  \defbibenvironment{shorthand}
   {\list{\thefield{shorthand}}{%
       \labelwidth\csname shorthandwidth\endcsname
       \labelsep\biblabelsep
       \leftmargin\labelwidth
       \advance\leftmargin\labelsep
       \itemsep\bibitemsep
       \parsep\bibparsep
       \def\makelabel##1{##1\hss}}}
    {\endlist}
    {\clearname{author}\def\do##1{\togglefalse{blx@use##1}}\abx@donames\item}
\makeatother

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.