Biblatex:arXiv 上论文的扩展版本

Biblatex:arXiv 上论文的扩展版本

我经常遇到由于篇幅限制而被大大缩减的论文(会议论文集)。作者通常会在 arXiv 上发表论文的扩展版本。我希望将其打印在我的参考书目中,例如作者、“标题”、期刊等,扩展版本:arxiv-id。现在我不知道您是否能用 biblatex 正确实现这种关系。我看到两种方法:

publishedextended保留为我的参考书目中的两个不同的条目并将它们链接起来:

\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}

作者。“标题”。在:期刊 (2021)。扩展版本 arXiv:12345。

相关内容