我正在尝试使用 alpha 书目样式,但我必须对其进行自定义。我的 .bib 文件中的内容是:
@book{laue,
Author = {Kurt Laue and Helmut Stenger},
Date-Added = {2014-05-06 20:55:13 +0000},
Date-Modified = {2014-05-06 20:55:42 +0000},
Title = {Strangpressen: Verfahren, Maschinen, Werkzeuge},
Year = {1976}}
我自然会得到:
但与此相反,我希望参考书目和引文显示为 [LAU76] 而不是 [LS76]。我的意思是,我希望所有引文都显示第一作者的前 3 个字母(大写)和出版年份。
我该怎么做?谢谢...
答案1
您可以使用 重新定义 Biber 创建标签的方式\DeclareLabelalphaTemplate
。
\renewcommand*{\labelalphaothers}{}
这是为了消除+
作者数量超过的情况maxnames
。
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{shorthand}
\field{label}
\field[strwidth=3,strside=left]{labelname}
}
\labelelement{
\field[strwidth=2,strside=right]{year}
}
}
这总是取第一作者姓氏的前三个名字并添加年份的最后两位数字。
我们还设定maxalphanames=1
了minalphanames=1
\usepackage[maxalphanames=1, minalphanames=1, style=alphabetic, backend=biber]{biblatex}
平均能量损失
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{laue,
Author = {Kurt Laue and Helmut Stenger},
Date-Added = {2014-05-06 20:55:13 +0000},
Date-Modified = {2014-05-06 20:55:42 +0000},
Title = {Strangpressen: Verfahren, Maschinen, Werkzeuge},
Year = {1976}}
\end{filecontents*}
\usepackage[maxalphanames=1, minalphanames=1, style=alphabetic, backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\addbibresource{\jobname.bib}
\renewcommand*{\labelalphaothers}{}
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{shorthand}
\field{label}
\field[strwidth=3,strside=left]{labelname}
}
\labelelement{
\field[strwidth=2,strside=right]{year}
}
}
\begin{document}
\cite{laue,wilde,baez/article,cicero}
\printbibliography
\end{document}
答案2
如果你不喜欢正确的方法,我建议你采用一种破解方法:
\newcommand{\Bibkeyhack}[3]{}
像使用它一样
author = {This Is The Author\Bibkeyhack LAU}
完整答案这里。