我经常遇到由于篇幅限制而被大大缩减的论文(会议论文集)。作者通常会在 arXiv 上发表论文的扩展版本。我希望将其打印在我的参考书目中,例如作者、“标题”、期刊等,扩展版本:arxiv-id。现在我不知道您是否能用 biblatex 正确实现这种关系。我看到两种方法:
将published
和extended
保留为我的参考书目中的两个不同的条目并将它们链接起来:
\documentclass{scrartcl}
\usepackage[backend=biber]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{biblio.bib}
@article{published,
title={Title}, author={Author}, journal={Journal}, year={2021},
related={extended}, relatedstring={extended version}
}
@online{extended,
title={Title}, author={Author}, year={2021},
eprint={12345}, eprinttype={arxiv}}
}
\end{filecontents}
\addbibresource{biblio.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
这很丑陋,因为它打印了两次标题和年份。也许这很好,因为已发布版本和扩展版本是两个单独的文档。但我不知道如何很好地打印条目。
我看到的替代方案滥用了eprintclass
-field:
\documentclass{scrartcl}
\usepackage[backend=biber]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{biblioa.bib}
@article{published,
title={Title}, author={Author}, journal={Journal}, year={2021},
eprint={12345}, eprinttype={arxiv}, eprintclass={extended version}}
}
\end{filecontents}
\addbibresource{biblioa.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
当然,这样打印出来的效果会很难看,但也许可以修复(怎么修复?我想我对写作风格还不够熟悉)。更严重的是,我认为将 -field 用于eprintclass
其预期用途以外的其他用途是个坏主意。
什么是合适的方法?
答案1
我喜欢这种related
方法。如果您对默认输出不满意,您可以定义自己的输出relatedtype
并自定义其输出。
下面我们定义arxivversion
,如果 arXiv 链接和标题及日期与发布的版本不同,则打印它们。
\documentclass{scrartcl}
\usepackage[backend=biber]{biblatex}
\newbibmacro*{related:arxivversion}[1]{%
\entrydata*{#1}{%
\iffieldsequal{title}{savedtitle}
{}
{\usebibmacro{title}}%
\newunit
\ifdatesequal{}{saved}
{}
{\printdate}%
\newunit
\usebibmacro{doi+eprint+url}}}
\begin{filecontents}{\jobname.bib}
@article{published,
title = {Title},
author = {Author},
journal = {Journal},
year = {2021},
related = {extended},
relatedtype = {arxivversion},
relatedstring = {\autocap{e}xtended version},
}
@online{extended,
title = {Title},
author = {Author},
year = {2021},
eprint = {12345},
eprinttype = {arxiv},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{published}
\printbibliography
\end{document}