17

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.

louis cypher
  • 1,333

1 Answers1

18

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.

\documentclass{article}
\usepackage[backend=biber]{biblatex}
\addbibresource{t.bib}
\DeclareSourcemap{
  \maps[datatype=bibtex]{
     \map{
        \step[fieldsource=doi,final]
        \step[fieldset=isbn,null]
        }
      }
}

\begin{document}
\cite{test1,test2,test3}
\printbibliography
\end{document}

with t.bib

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

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

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

gives

Sample output

Andrew Swann
  • 95,762
  • 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. – louis cypher Oct 14 '12 at 14:37
  • Andrew, do you know the same feature in BibTeX? Have my own .bst file. BR Tobias. – TobiasDK Jun 04 '15 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. http://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. – Andrew Swann Jun 05 '15 at 08: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: [http://tex.stackexchange.com/questions/248732/define-bibstyle-output-hierarchy-for-doi-url-isbn-and-issn-in-bibtex]. Thanks in advance. – TobiasDK Jun 05 '15 at 09:37