arxiv 引用功能

arxiv 引用功能

假设我有一个如下所示的参考书目条目(我正在使用biblatex):

@article{foo,
  author = {A. Author},
  title = {Super article},
  archivePrefix = "arXiv",
  eprint        = "3301.1234",
  primaryClass  = "hep-ex"
}

我想创建一个命令\arxiv,可以使用它来 \arxiv{foo}打印

[1][arXiv:3301.1234]

where[1]与 what 的作用相同\cite,第二部分将链接到文章的 arXiv 页面,例如http://arxiv.org/abs/3301.1234

可以这样做吗?我想要这个,这样我就可以在 beamer 中引用 arXiv 论文,而且如果有人(或我后来)拆开幻灯片,即使没有参考书目幻灯片,引用也是有用的。

答案1

您可以定义\arxivcite。这是正常的,并且如果可用,\cite还会打印信息eprint

\DeclareCiteCommand{\arxivcite}[\mkbibbrackets]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}%
   \newunit
   \usebibmacro{eprint}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

对于numeric-comp,尝试

\makeatletter
\DeclareFieldFormat{eprint:cite:arxiv}{%
  arXiv\addcolon\space
  \ifhyperref
    {\href{http://arxiv.org/\abx@arxivpath/#1}{%
       \nolinkurl{#1}}}
    {\nolinkurl{#1}}}
\makeatother

\newbibmacro*{cite:eprint}{%
  \iffieldundef{eprinttype}
    {\printfield{eprint}}
    {\printfield[eprint:cite:\strfield{eprinttype}]{eprint}}}

\DeclareCiteCommand{\arxivcite}
  {}
  {\printtext[labelnumberwidth]{%
     \usebibmacro{prenote}%
     \usebibmacro{citeindex}%
     \printtext[bibhyperref]{%
       \printfield{labelprefix}%
       \printfield{labelnumber}}%
     \usebibmacro{postnote}}%
   \printtext[brackets]{\usebibmacro{cite:eprint}}}
  {\multicitedelim}
  {}

这会禁用此特定命令的所有功能。对于要使用的每种类型-comp,您都必须有一个。\DeclareFieldFormat{eprint:cite:<type>}eprint

相关内容