使用标签作为 biblatex 键

使用标签作为 biblatex 键

我看到有很多样式可以biblatex在参考书目中自动生成“键”,但我想使用实际的引用键,以便我可以完全自己定制它。

例如如果我的输入是

@article{Th,
    Author = {Dude},
    Title = {thing}}

我希望生成的文本为“这件事在 [Th] 中说”,并且我希望引用显示为:

[Th] 哥们,这玩意儿

看起来很简单,但找不到style这是什么“”。它似乎是“ abstract”风格,但biblatex告诉我“ style abstract not found”。

编辑:我使用 biblatex 的原因是因为我需要根据某些关键字创建两个单独的参考书目,所以如果有人知道如何使用传统的 bibtex 来做到这一点(不管这意味着什么),我就会接受!

答案1

我天真地以为

\DeclareLabelalphaTemplate{
  \labelelement{
    \field[final]{entrykey}
  }
}

应该适用于alphabetic基本样式(并且是最惯用的解决方案之一)。Biber 2.12 似乎不是这种情况,所以我打开了https://github.com/plk/biber/issues/259在 Biber 错误跟踪器上。

编辑作为PLK 回答

\DeclareLabelalphaTemplate{
  \labelelement{
    \field[final]{citekey}
  }
}

citekey而不是entrykeyworks。在 Biber 2.13 及以上版本中entrykey也被接受。


与此同时,这里有一个解决方法,将 复制entrykey到字段shorthand。由于alphabetic样式使用shorthand字段作为标签的“覆盖”,因此将 复制entrykey到该字段将导致entrykey成为标签。映射不会覆盖现有的shorthand。如果您想要,您可以添加[overwrite=true]\map指令中。您可以在biblatex文档, §4.5.3动态修改数据.bib(第 182-193 页)。本质上,源映射允许您从源动态地操作条目字段的内容.tex

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=alphabetic, backend=biber]{biblatex}

\addbibresource{biblatex-examples.bib}

\DeclareSourcemap{
  \maps{
    \map{
      \step[fieldsource=entrykey]
      \step[fieldset=shorthand, origfieldval]
    }
  }
}


\begin{document}
\cite{sigfridsson,worman,geer}
\printbibliography
\end{document}

以 entrykeys 作为标签的参考书目

biblatex请注意,这种标签生成方式与 (和 BibTeX)的理念有些相悖。通常,大多数标签应由 Biber/BibTeX 自动生成,只有偶尔您才可能想要使用 来否决某些内容shorthand。请注意,biblatex的标签创建是完全可定制的,因此,如果您能够以算法术语来说明所需的标签biblatex,这将是首选解决方案。输入键实际上应该完全是内部的。


abstract您在问题中提到的样式大概是 BibTeX 样式。BibTeXabstract.bst.bst样式与该包完全不兼容biblatex,不能与该包一起使用。biblatex样式debugdraft可能也很有趣,尽管它们通常不应该在普通文档中使用,而且它们的输出可能不太适合您的想法。

答案2

这已经通过伪密钥支持citekey

\DeclareLabelalphaTemplate{
  \labelelement{
    \field[final]{citekey}
  }
}

我可能会entrykey在下一版本中添加一个别名,以便与源映射兼容。

相关内容