我试图引用一个电子版使用biblatex
。在我使用 BibTeX 的日子里,我使用@misc
它,但是使用biblatex
的附加条目类型似乎@online
更适合此目的。
此外,我还使用该hyperref
包在我的文档的各个位置插入链接,包括指向我的参考书目中的在线文档的链接,例如此电子版。
在我使用 BibTeX 的日子里,我会使用这个:
@misc{foo,
author = {David Pointcheval and Olivier Sanders},
title = {Short Randomizable Signatures},
year = {2015},
month = jun,
howpublished = {Cryptology ePrint Archive, Report 2015/525},
note = {\url{http://eprint.iacr.org/2015/525}},
}
现在有了biblatex
,我尝试像这样改进它:
@online{foo,
author = {David Pointcheval and Olivier Sanders},
title = {Short Randomizable Signatures},
year = 2015,
month = jun,
eprinttype = {Cryptology ePrint Archive},
eprint = {2015/525},
url = {https://eprint.iacr.org/2015/525}
}
问题是现在二超链接。第一个来自字段eprint
(2012/525
),第二个来自url
字段(https://eprint.iacr.org/2012/185
)。第二个工作正常,看起来符合预期,但第一个似乎链接到相2012/525
对于包含 PDF 本身的目录的本地文件,这当然是无稽之谈。这样的文件不存在,因此当我尝试单击链接时会收到错误消息。
我该如何删除这个无效链接?顺便问一句,将字段超链接eprint
到本地文件的初衷是什么?我看不出这样做有什么实际用途。
最小工作示例:
\documentclass{article}
\usepackage[backend=biber]{biblatex}
\usepackage{hyperref}
\begin{filecontents}{\jobname.bib}
@online{foo,
author = {David Pointcheval and Olivier Sanders},
title = {Short Randomizable Signatures},
year = 2015,
month = jun,
eprinttype = {Cryptology ePrint Archive},
eprint = {2015/525},
url = {https://eprint.iacr.org/2015/525}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{foo}
\printbibliography
\end{document}
答案1
该字段的理念eprint
是,它提供某些电子参考的唯一部分,类型提供“设置”。在类型未知的情况下,bibaltex
假设 epint ID 包含完整的 URL,因此只需将其变成超链接即可。该hyperref
包将缺少或类似的链接解释http
为本地链接,因此您看到的结果。
您需要做的是说明biblatex
电子印刷类型。例如,我会给它起一个单词的名字
\documentclass{article}
\usepackage[backend=biber]{biblatex}
\DeclareFieldFormat{eprint:iacr}{%
\href{https://eprint.iacr.org/#1}{Cryptology ePrint Archive: #1}%
}
\usepackage{hyperref}
\begin{filecontents}{\jobname.bib}
@online{foo,
author = {David Pointcheval and Olivier Sanders},
title = {Short Randomizable Signatures},
year = 2015,
month = jun,
eprinttype = {iacr},
eprint = {2015/525},
url = {https://eprint.iacr.org/2015/525}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{foo}
\printbibliography
\end{document}
我可能会删除这里的 URL 字段,因为它只是重复的电子版数据(就像我会有一个 DOI 字段而不是出版商文章的链接一样)。不过,如果 URL 与电子版数据匹配,您可以设置清除 URL。