我看到有很多样式可以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
而不是entrykey
works。在 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}
biblatex
请注意,这种标签生成方式与 (和 BibTeX)的理念有些相悖。通常,大多数标签应由 Biber/BibTeX 自动生成,只有偶尔您才可能想要使用 来否决某些内容shorthand
。请注意,biblatex
的标签创建是完全可定制的,因此,如果您能够以算法术语来说明所需的标签biblatex
,这将是首选解决方案。输入键实际上应该完全是内部的。
abstract
您在问题中提到的样式大概是 BibTeX 样式。BibTeXabstract.bst
的.bst
样式与该包完全不兼容biblatex
,不能与该包一起使用。biblatex
样式debug
和draft
可能也很有趣,尽管它们通常不应该在普通文档中使用,而且它们的输出可能不太适合您的想法。
答案2
这已经通过伪密钥支持citekey
:
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{citekey}
}
}
我可能会entrykey
在下一版本中添加一个别名,以便与源映射兼容。