I have a large set of references and I in most cases do have either

  • ISBN
  • DOI
  • DOI and ISBN

I'd like to setup a filter that prints the ISBN only when the DOI does not exist.

How can I set up a filter that performs this conditional printing (I read this thread but didn't find a command to check whether an entry exists)

If necessary I could also define empty DOI entries but this would be plenty of work.


1 Answer 1


You can use biblatex source remapping features. The code checks whether the doi field is non-null and if it is it clears the isbn field so that it is not printed.



with t.bib

  author =   {Author, First},
  title =    {Title One},
  publisher =    {Publisher},
  year =     2000,
  doi =      {doi:field},
  note =     {doi only}

  author =   {Author, Gareth},
  title =    {Title Two},
  publisher =    {Publisher},
  year =     2005,
  isbn =     {isbn number},
  note =     {isbn only}

  author =   {Author, Last},
  title =    {Title Three},
  publisher =    {Publisher},
  year =     2007,
  isbn =     {isbn number},
  doi =      {doi:field},
  note =     {isbn and doi}


Sample output

  • Works like a charm and is much more elegant than the solution suggested in the other thread (which I didn't find; sorry). Thanks a lot. Oct 14, 2012 at 14:37
  • Andrew, do you know the same feature in BibTeX? Have my own .bst file. BR Tobias.
    – TobiasDK
    Jun 4, 2015 at 17:43
  • @TobiasDK In bibtex it would involve writing appropriate functions in the .bst file to do this. It is most certainly possible,cf. tex.stackexchange.com/q/137345/15925, but depends on the rest of that file. Post a new question if you can't make it work. I would in fact be tempted to use something like bibtool to preprocess the bib file instead. Jun 5, 2015 at 8:44
  • @AndrewSwann, thank you for the answer. I have posted a new question to deal with my problem. Maybe you have time to look at it: [tex.stackexchange.com/questions/248732/…. Thanks in advance.
    – TobiasDK
    Jun 5, 2015 at 9:37

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.