2

When compiling the following MWE with pdflatex --> biber --> pdflatex, a correct doi link is generated:

https://doi.org/10.1016/j.automatica.2013.06.002

However, when compiling with htlatex --> biber --> htlatex, an incomplete (and hence wrong) doi link is generated:

10.1016/j.automatica.2013.06.002 

When having a closer look at the generated html file, it turns out that the correct link is overwritten by the incomplete (wrong) link:

<a href="https://doi.org/10.1016/j.automatica.2013.06.002" ><a 
href="10.1016/j.automatica.2013.06.002" class="url" ><span 
class="cmtt-10">10.1016/j.automatica.2013.06.002</span></a></a>.

This, serious issue, produces wrong links in a file with multiple entries.

Here is the MWE

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}   
@Article{b,
  date =     2003,
  author =   {Author, Amy},
  title =    {Title},
  journaltitle = {Journal},
  volume =   10,
  number =   4,
  doi = {10.1016/j.automatica.2013.06.002},
  pages =    {100-141}}   
\end{filecontents*}

\usepackage[backend=biber]{biblatex}
\usepackage{hyperref}
\addbibresource{\jobname.bib}   
\begin{document}
    \nocite{*}
    \printbibliography[]
\end{document}
1
2

It seems that \nolinkurl is redefined to \url by TeX4ht. In this case, \nolinkurl is used by Biblatex to print just part of DOI and \href outputs the full address. This results in double link, where the partial link that doesn't point anywhere is contained in the correct link. Unfortunately, the wrong link is picked by browser. To workaround this, you can save the original meaning of \nolinkurl and override the TeX4ht configuration.

Try this config file:

\let\orignolinkurl\nolinkurl
\Preamble{xhtml}
\begin{document}
\EndPreamble
\let\nolinkurl\orignolinkurl

It produces a better output:

<p class='noindent'><a id='cite.0@b'></a>Amy Author. “Title”. In: <span class='cmti-10'>Journal </span>10.4 (2003), pp. 100–141. <span class='cmcsc-10'><span class='small-caps'>doi</span></span>: <a href='https://doi.org/10.1016/j.automatica.2013.06.002'><span class='cmtt-10'>10.1016/
    </span><span class='cmtt-10'>j.automatica.2013.06.002</span></a>.</p>
2
  • Thanks a lot @michal.h21. It works great! Is this just a workaround and the issue will be corrected in an upcoming version of TeX4ht? – rasha Mar 2 at 10:38
  • @rasha this is already fixed in TeX4ht sources, so it should be available in TeX Live soon. – michal.h21 Mar 2 at 12:28

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.