如何获取由第一作者全名后跟两个年份数字组成的 biblatex 标签(即 [Smith42],[Johnson87])?
我发现这个问题,它提供了一种仅根据第一作者获取标签的解决方案,但它只使用前三个字母。我该如何将其扩展为全名?
答案1
我们可以修改 labelalpha-template 来实现这一点
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{shorthand}
\field{label}
\field[names=1]{labelname}
}
\labelelement{
\field[strwidth=2,strside=right]{year}
}
}
重要的变化是在第五行:我们只打印一个labelname
(第一个),但打印其完整长度。
如果你想去掉表示“et al”的加号,你需要使用
\renewcommand*{\labelalphaothers}{}
或者,你的修改可能看起来像这样
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{shorthand}
\field{label}
\field{labelname}
}
\labelelement{
\field[strwidth=2,strside=right]{year}
}
}
明确maxalphanames=1
设置为选项。
平均能量损失
\documentclass{article}
\usepackage[
style = alphabetic,
maxalphanames=1,
backend = biber,
]{biblatex}
\addbibresource{biblatex-examples.bib}
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{shorthand}
\field{label}
\field{labelname}
}
\labelelement{
\field[strwidth=2,strside=right]{year}
}
}
\renewcommand*{\labelalphaothers}{}
\begin{document}
This is plain filler \cite{wilde} and further on \cite{cicero} and \cite{baez/article}.
\end{document}
答案2
尽管我没有测试过,但这应该有帮助:
\DeclareLabelalphaTemplate{
\labelelement{
\field[{labelname}
}
\labelelement{
\field[strwidth=2,strside=right]{labelyear}
}
}
详细信息请参阅 biblatex 手册第 4.5.4 节“标签”。