I have a bibliographic entry with no date. I would like this to be printed both in the citation (i.e. in the text) and in the references with "n.d.", otherwise it shouldn't be different from a regular entry.

In the example below, I would like the citations to be

Lennon (n.d.); Lennon (1972)

and the references to be

Lennon, John (n.d.). Peace on earth.

Lennon, John (1972). More peace on earth.

    AUTHOR = "John Lennon",
    TITLE = "Peace on earth"}
    AUTHOR = "John Lennon",
    TITLE = "More peace on earth",
    YEAR = "1972"}

enter image description here


You can add the following hooks to your preamble:

\newcommand{\mkbibnodate}{n\adddot d\adddot}

With biber, you can achieve the same result with the source map:


Both of these approaches are style-independent so they should work for authoryear and any of its variants.

The above sourcemap is based on the default labelyear specification:


Currently \DeclareLabelyear does not support literal strings, but something like the following would be useful:


I've added a feature request for this at the biblatex github repository.

  • A follow-up note: Using the former alternative, biblatex now also adds n.d. to the entry type @ONLINE, which is not suitable, since the @ONLINE entry has a field URLDATE for this purpose. I assume there's an easy fix for this (one that skips @ONLINE entries or one that doesn't add n.d. if the entry has a field for URLDATE), but I wouldn't know how to do it. – Sverre Mar 7 '13 at 18:43
  • 1
    @Sverre labelyear has a few fallback values if year isn't defined. For the first approach you can just base the test always on labelyear. Accounting for fallbacks in second approach gets messy. – Audrey Mar 7 '13 at 23:40
  • The '\DeclareSourcemap' -method works for me since I am using biber. How do you change the 'n.d.' to 's.a.'? – np8 Aug 18 '16 at 9:34
  • Nevermind. The answer was the most obvious; just edit the \step[fieldset=year,fieldvalue={n.d.},final] -line. I forgot to run PdfLatex-Biber-PdfLatex and hence the values did not update. – np8 Aug 18 '16 at 9:38

Please try biblatex 2.6/biber 1.6 development versions from SourceForge. This set up is now the default and there is a new localisation string "nodate" which defaults to "n.d." in all languages currently. \DeclareLabelyear is now the more general:


but you shouldn't need to worry about that unless you are a style author using this macro. With these versions, your example gives the following without any extra coding:

enter image description here

Changing the "nodate" localisation string for your language will change the "n.d." in both the references and citation.

  • Good to hear that the next(?) version of biblatex and biber will do this by default. I also hope the appropriate language specific variants will be added in the near future (that is not a pressing need for me). I will myself wait until the next version is released, since I update my packages through TexLive. – Sverre Mar 14 '13 at 11:40
  • 1
    Most language variants for "nodate" have now been incorporated into the biblatex 2.6 dev version. – PLK Mar 15 '13 at 12:50

  • While this works for \textcite, it doesn't work with \cite or \parencite. In the latter two cases, it only prints n.d., and not the author's name. – Sverre Mar 6 '13 at 16:40

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.