biblatex: Hyperlink entire bib entry to DOI, URL or ISBN if available












2














This is kind of a combination of two questions and then I have a bibliography style problem on top of that.



I would like to make each bib entry into a hyperlink with the priority: 1. DOI, 2. URL, 3. ISBN/ISNN. It has earlier been shown how this is done for the title of the entries in biblatex: make title hyperlink to DOIs, URL or ISBN. However, I am using a bibliography style which does not show titles (chem-angew). I would like the entire entry to become a hyperlink. This has been done only with DOI in Hyperlink each bib entry to its DOI page.



My first problem is, when I use the chem-angew style and I include an entry with a DOI, the DOI shows, even though I include DOI=false in the usepackage (and the DOI is not supposed to show up in the chem-angew style):



documentclass{article}
usepackage[style=chem-angew,doi=false,url=false,isbn=false,]{biblatex}
usepackage[colorlinks]{hyperref}

begin{filecontents}{jobname.bib}
@article{A01,
author = {Author, A.},
year = {2001},
title = {Alpha},
doi = {doi},
url = {url},
issn = {isbn-issn},
}
end{filecontents}

addbibresource{jobname.bib}
nocite{*}

begin{document}
printbibliography
end{document}


enter image description here



My second problem is, when I add:



AtEveryBibitem{%
iffieldundef{url}
{}
{href{thefield{url}}{usedriver{thefield{article}}}
csdef{blx@bbx@thefield{entrytype}}{}}%
}


to my local biblatex.cfg file, the bib entry will have the biblatex style and not the chem-angew style as asked for in the same way as my earlier MWE.



enter image description here



The final problem is the priority of the hyperlink which I would like to add to the entries.










share|improve this question



























    2














    This is kind of a combination of two questions and then I have a bibliography style problem on top of that.



    I would like to make each bib entry into a hyperlink with the priority: 1. DOI, 2. URL, 3. ISBN/ISNN. It has earlier been shown how this is done for the title of the entries in biblatex: make title hyperlink to DOIs, URL or ISBN. However, I am using a bibliography style which does not show titles (chem-angew). I would like the entire entry to become a hyperlink. This has been done only with DOI in Hyperlink each bib entry to its DOI page.



    My first problem is, when I use the chem-angew style and I include an entry with a DOI, the DOI shows, even though I include DOI=false in the usepackage (and the DOI is not supposed to show up in the chem-angew style):



    documentclass{article}
    usepackage[style=chem-angew,doi=false,url=false,isbn=false,]{biblatex}
    usepackage[colorlinks]{hyperref}

    begin{filecontents}{jobname.bib}
    @article{A01,
    author = {Author, A.},
    year = {2001},
    title = {Alpha},
    doi = {doi},
    url = {url},
    issn = {isbn-issn},
    }
    end{filecontents}

    addbibresource{jobname.bib}
    nocite{*}

    begin{document}
    printbibliography
    end{document}


    enter image description here



    My second problem is, when I add:



    AtEveryBibitem{%
    iffieldundef{url}
    {}
    {href{thefield{url}}{usedriver{thefield{article}}}
    csdef{blx@bbx@thefield{entrytype}}{}}%
    }


    to my local biblatex.cfg file, the bib entry will have the biblatex style and not the chem-angew style as asked for in the same way as my earlier MWE.



    enter image description here



    The final problem is the priority of the hyperlink which I would like to add to the entries.










    share|improve this question

























      2












      2








      2







      This is kind of a combination of two questions and then I have a bibliography style problem on top of that.



      I would like to make each bib entry into a hyperlink with the priority: 1. DOI, 2. URL, 3. ISBN/ISNN. It has earlier been shown how this is done for the title of the entries in biblatex: make title hyperlink to DOIs, URL or ISBN. However, I am using a bibliography style which does not show titles (chem-angew). I would like the entire entry to become a hyperlink. This has been done only with DOI in Hyperlink each bib entry to its DOI page.



      My first problem is, when I use the chem-angew style and I include an entry with a DOI, the DOI shows, even though I include DOI=false in the usepackage (and the DOI is not supposed to show up in the chem-angew style):



      documentclass{article}
      usepackage[style=chem-angew,doi=false,url=false,isbn=false,]{biblatex}
      usepackage[colorlinks]{hyperref}

      begin{filecontents}{jobname.bib}
      @article{A01,
      author = {Author, A.},
      year = {2001},
      title = {Alpha},
      doi = {doi},
      url = {url},
      issn = {isbn-issn},
      }
      end{filecontents}

      addbibresource{jobname.bib}
      nocite{*}

      begin{document}
      printbibliography
      end{document}


      enter image description here



      My second problem is, when I add:



      AtEveryBibitem{%
      iffieldundef{url}
      {}
      {href{thefield{url}}{usedriver{thefield{article}}}
      csdef{blx@bbx@thefield{entrytype}}{}}%
      }


      to my local biblatex.cfg file, the bib entry will have the biblatex style and not the chem-angew style as asked for in the same way as my earlier MWE.



      enter image description here



      The final problem is the priority of the hyperlink which I would like to add to the entries.










      share|improve this question













      This is kind of a combination of two questions and then I have a bibliography style problem on top of that.



      I would like to make each bib entry into a hyperlink with the priority: 1. DOI, 2. URL, 3. ISBN/ISNN. It has earlier been shown how this is done for the title of the entries in biblatex: make title hyperlink to DOIs, URL or ISBN. However, I am using a bibliography style which does not show titles (chem-angew). I would like the entire entry to become a hyperlink. This has been done only with DOI in Hyperlink each bib entry to its DOI page.



      My first problem is, when I use the chem-angew style and I include an entry with a DOI, the DOI shows, even though I include DOI=false in the usepackage (and the DOI is not supposed to show up in the chem-angew style):



      documentclass{article}
      usepackage[style=chem-angew,doi=false,url=false,isbn=false,]{biblatex}
      usepackage[colorlinks]{hyperref}

      begin{filecontents}{jobname.bib}
      @article{A01,
      author = {Author, A.},
      year = {2001},
      title = {Alpha},
      doi = {doi},
      url = {url},
      issn = {isbn-issn},
      }
      end{filecontents}

      addbibresource{jobname.bib}
      nocite{*}

      begin{document}
      printbibliography
      end{document}


      enter image description here



      My second problem is, when I add:



      AtEveryBibitem{%
      iffieldundef{url}
      {}
      {href{thefield{url}}{usedriver{thefield{article}}}
      csdef{blx@bbx@thefield{entrytype}}{}}%
      }


      to my local biblatex.cfg file, the bib entry will have the biblatex style and not the chem-angew style as asked for in the same way as my earlier MWE.



      enter image description here



      The final problem is the priority of the hyperlink which I would like to add to the entries.







      biblatex hyperref urls doi






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Dec 10 at 21:41









      Lea

      5517




      5517






















          1 Answer
          1






          active

          oldest

          votes


















          3














          Here is one solution that tries to link the entire entry (minus the label). string+doiurl is a simplified version of lockstep's string+doiurlisbn from biblatex: make title hyperlink to DOIs, URL or ISBN



          documentclass{article}
          usepackage[style=chem-angew,doi=false,url=false,isbn=false,]{biblatex}
          usepackage[colorlinks]{hyperref}

          newbibmacro{string+doiurl}[1]{%
          iffieldundef{doi}
          {iffieldundef{url}
          {#1}
          {href{thefield{url}}{#1}}}
          {href{https://doi.org/thefield{doi}}{#1}}}

          makeatletter
          defblx@driver#1{%
          ifcsdef{blx@bbx@#1}
          {usebibmacro{string+doiurl}{csuse{blx@bbx@#1}}}
          {ifcsdef{blx@bbx@*}
          {blx@warning{%
          No driver for entry type '#1'.MessageBreak
          Using fallback driver}%
          usebibmacro{string+doiurl}{csuse{blx@bbx@*}}}
          {blx@error
          {No driver found}
          {I can't find a driver for the entry type
          'abx@field@entrytype'MessageBreak
          and there is no fallback driver either}}}}
          makeatother

          addbibresource{biblatex-examples.bib}
          nocite{sigfridsson,ctan,nussbaum}

          begin{document}
          printbibliography
          end{document}


          Screenshot of the bibliography in the MWE: The first two entries are linked to DOI and URL, respectively. The last entry is not linked as it misses both a <code>doi</code> and <code>url</code> field.






          share|improve this answer





















            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "85"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f464215%2fbiblatex-hyperlink-entire-bib-entry-to-doi-url-or-isbn-if-available%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            3














            Here is one solution that tries to link the entire entry (minus the label). string+doiurl is a simplified version of lockstep's string+doiurlisbn from biblatex: make title hyperlink to DOIs, URL or ISBN



            documentclass{article}
            usepackage[style=chem-angew,doi=false,url=false,isbn=false,]{biblatex}
            usepackage[colorlinks]{hyperref}

            newbibmacro{string+doiurl}[1]{%
            iffieldundef{doi}
            {iffieldundef{url}
            {#1}
            {href{thefield{url}}{#1}}}
            {href{https://doi.org/thefield{doi}}{#1}}}

            makeatletter
            defblx@driver#1{%
            ifcsdef{blx@bbx@#1}
            {usebibmacro{string+doiurl}{csuse{blx@bbx@#1}}}
            {ifcsdef{blx@bbx@*}
            {blx@warning{%
            No driver for entry type '#1'.MessageBreak
            Using fallback driver}%
            usebibmacro{string+doiurl}{csuse{blx@bbx@*}}}
            {blx@error
            {No driver found}
            {I can't find a driver for the entry type
            'abx@field@entrytype'MessageBreak
            and there is no fallback driver either}}}}
            makeatother

            addbibresource{biblatex-examples.bib}
            nocite{sigfridsson,ctan,nussbaum}

            begin{document}
            printbibliography
            end{document}


            Screenshot of the bibliography in the MWE: The first two entries are linked to DOI and URL, respectively. The last entry is not linked as it misses both a <code>doi</code> and <code>url</code> field.






            share|improve this answer


























              3














              Here is one solution that tries to link the entire entry (minus the label). string+doiurl is a simplified version of lockstep's string+doiurlisbn from biblatex: make title hyperlink to DOIs, URL or ISBN



              documentclass{article}
              usepackage[style=chem-angew,doi=false,url=false,isbn=false,]{biblatex}
              usepackage[colorlinks]{hyperref}

              newbibmacro{string+doiurl}[1]{%
              iffieldundef{doi}
              {iffieldundef{url}
              {#1}
              {href{thefield{url}}{#1}}}
              {href{https://doi.org/thefield{doi}}{#1}}}

              makeatletter
              defblx@driver#1{%
              ifcsdef{blx@bbx@#1}
              {usebibmacro{string+doiurl}{csuse{blx@bbx@#1}}}
              {ifcsdef{blx@bbx@*}
              {blx@warning{%
              No driver for entry type '#1'.MessageBreak
              Using fallback driver}%
              usebibmacro{string+doiurl}{csuse{blx@bbx@*}}}
              {blx@error
              {No driver found}
              {I can't find a driver for the entry type
              'abx@field@entrytype'MessageBreak
              and there is no fallback driver either}}}}
              makeatother

              addbibresource{biblatex-examples.bib}
              nocite{sigfridsson,ctan,nussbaum}

              begin{document}
              printbibliography
              end{document}


              Screenshot of the bibliography in the MWE: The first two entries are linked to DOI and URL, respectively. The last entry is not linked as it misses both a <code>doi</code> and <code>url</code> field.






              share|improve this answer
























                3












                3








                3






                Here is one solution that tries to link the entire entry (minus the label). string+doiurl is a simplified version of lockstep's string+doiurlisbn from biblatex: make title hyperlink to DOIs, URL or ISBN



                documentclass{article}
                usepackage[style=chem-angew,doi=false,url=false,isbn=false,]{biblatex}
                usepackage[colorlinks]{hyperref}

                newbibmacro{string+doiurl}[1]{%
                iffieldundef{doi}
                {iffieldundef{url}
                {#1}
                {href{thefield{url}}{#1}}}
                {href{https://doi.org/thefield{doi}}{#1}}}

                makeatletter
                defblx@driver#1{%
                ifcsdef{blx@bbx@#1}
                {usebibmacro{string+doiurl}{csuse{blx@bbx@#1}}}
                {ifcsdef{blx@bbx@*}
                {blx@warning{%
                No driver for entry type '#1'.MessageBreak
                Using fallback driver}%
                usebibmacro{string+doiurl}{csuse{blx@bbx@*}}}
                {blx@error
                {No driver found}
                {I can't find a driver for the entry type
                'abx@field@entrytype'MessageBreak
                and there is no fallback driver either}}}}
                makeatother

                addbibresource{biblatex-examples.bib}
                nocite{sigfridsson,ctan,nussbaum}

                begin{document}
                printbibliography
                end{document}


                Screenshot of the bibliography in the MWE: The first two entries are linked to DOI and URL, respectively. The last entry is not linked as it misses both a <code>doi</code> and <code>url</code> field.






                share|improve this answer












                Here is one solution that tries to link the entire entry (minus the label). string+doiurl is a simplified version of lockstep's string+doiurlisbn from biblatex: make title hyperlink to DOIs, URL or ISBN



                documentclass{article}
                usepackage[style=chem-angew,doi=false,url=false,isbn=false,]{biblatex}
                usepackage[colorlinks]{hyperref}

                newbibmacro{string+doiurl}[1]{%
                iffieldundef{doi}
                {iffieldundef{url}
                {#1}
                {href{thefield{url}}{#1}}}
                {href{https://doi.org/thefield{doi}}{#1}}}

                makeatletter
                defblx@driver#1{%
                ifcsdef{blx@bbx@#1}
                {usebibmacro{string+doiurl}{csuse{blx@bbx@#1}}}
                {ifcsdef{blx@bbx@*}
                {blx@warning{%
                No driver for entry type '#1'.MessageBreak
                Using fallback driver}%
                usebibmacro{string+doiurl}{csuse{blx@bbx@*}}}
                {blx@error
                {No driver found}
                {I can't find a driver for the entry type
                'abx@field@entrytype'MessageBreak
                and there is no fallback driver either}}}}
                makeatother

                addbibresource{biblatex-examples.bib}
                nocite{sigfridsson,ctan,nussbaum}

                begin{document}
                printbibliography
                end{document}


                Screenshot of the bibliography in the MWE: The first two entries are linked to DOI and URL, respectively. The last entry is not linked as it misses both a <code>doi</code> and <code>url</code> field.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Dec 11 at 10:23









                moewe

                86.3k9109332




                86.3k9109332






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f464215%2fbiblatex-hyperlink-entire-bib-entry-to-doi-url-or-isbn-if-available%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    How to change which sound is reproduced for terminal bell?

                    Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

                    Can I use Tabulator js library in my java Spring + Thymeleaf project?