0

I have a problem with the bibliography for my project.

I have the following preamble:

\usepackage[backend=biber, style=authoryear,
  bibencoding=utf8]{biblatex}
\setlength\bibitemsep{0.5\baselineskip}
\addbibresource{Bibtex/mybib.bib}
\DeclareNameAlias{sortname}{last-first}
\DeclareNameAlias{default}{last-first}

However, this produces (Author(s), n.d.) in the citation call-out whenever there is no "year" typed in the bib entry. How can I remove this whenever a year is not available.

5
  • 1
    Welcome to TeX.SE. Specifying the option style=authoryear raises the expectation, at least implicitly, that each bib entry will have a non-empty date or year field. If your bibliography has entries without date or year fields, you may want to re-think the wisdom of specifying the option style=authoryear.
    – Mico
    Dec 18, 2017 at 15:35
  • Thank you. What do you propose I use instead if I want to have the author and year still displayed? Dec 18, 2017 at 15:36
  • 2
    The fundamental issue is: How (and why) is biblatex supposed to display the year of the publication if no year-related information is provided? The best (and only!) thing biblatex can do under such circumstances is to display n.d., which is short for "no date". A general observation: If there truly is no year-related information for some publication, it's better to say so explicitly than it is to create some ambiguity as to what the publication date may be.
    – Mico
    Dec 18, 2017 at 15:57
  • Aside: If you want to create a citation call-out that shows just the author(s) of the publication, you could use the command citeauthor. This works irrespective of whether or not the year-related information is available.
    – Mico
    Dec 18, 2017 at 15:59
  • I already knew that but thank you. My question was, however: Is there a way to make a LaTeX command that changes this style to another that only displays the Author whenever the year is not obtainable? Dec 18, 2017 at 16:00

1 Answer 1

2
\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifnameundef{labelname}
       {\usebibmacro{cite:label}%
        \setunit{\printdelim{nonameyeardelim}}}
       {\printnames{labelname}%
        \setunit{\printdelim{nameyeardelim}}}%
     \iffieldequalstr{labelyear}{nodate}
       {\printfield{extradate}}
       {\usebibmacro{cite:labeldate+extradate}}}
    {\usebibmacro{cite:shorthand}}}

Will not show the 'n.d.' in case no year is given, it will instead show nothing if the citation is the only work by the author or a letter if there are several works by that author. If you want the title to disambiguate several works by the same author, replace \printfield{extradate} with \iffieldundef{extradate}{}{\printfield[citetitle]{labeltitle}}.

You must log in to answer this question.

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