By default biblatex
does not print anything in the bibliography if the date
is not set
\renewbibmacro*{date+extrayear}{%
\iffieldundef{\thefield{datelabelsource}year}
{}
{\printtext[parens]{%
\iffieldsequal{year}{\thefield{datelabelsource}year}
{\printdateextralabel}%
{\printfield{labelyear}%
\printfield{extrayear}}}}}%
You can force biblatex
to always print the year
\renewbibmacro*{date+extrayear}{%
\printtext[parens]{%
\iffieldsequal{year}{\thefield{datelabelsource}year}
{\printdateextralabel}%
{\printfield{labelyear}%
\printfield{extrayear}}}}%
Or to only print the letter if no year is available
\renewbibmacro*{date+extrayear}{%
\iffieldundef{\thefield{datelabelsource}year}
{\printfield{extrayear}}
{\printtext[parens]{%
\iffieldsequal{year}{\thefield{datelabelsource}year}
{\printdateextralabel}%
{\printfield{labelyear}%
\printfield{extrayear}}}}}%
This applies to the standard mergedate=true
/mergdetae=compact
setting, if you have any other mergdate
option in place, you might have to modify the redefinitions above.
\documentclass[a4paper,12pt]{article}%
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@BOOK{bar1,
title = {Text One},
year = {},
author = {Firstname Lastname},
}
@BOOK{bar2,
title = {Text Two},
year = {},
author = {Firstname Lastname},
}
\end{filecontents}
\usepackage[backend=biber, style=authoryear, dashed=true]{biblatex}
\addbibresource{\jobname.bib}
\renewbibmacro*{date+extrayear}{%
\printtext[parens]{%
\iffieldsequal{year}{\thefield{datelabelsource}year}
{\printdateextralabel}%
{\printfield{labelyear}%
\printfield{extrayear}}}}%
\begin{document}
\cite{bar1} and \cite{bar2}
\printbibliography
\end{document}
biblatex
not printing any date information (if it is not available) in the bibliography. (Also these books don't have aurldate
)\DeclareLabeldate{\field{date}\field{eventdate} \field{origdate}\literal{nodate}}
I do not get the "n.d." in the bibliography.