我引用了“Wil van der Aalst”的论文,我想使用字母格式。当使用LNI 风格,条目的标签为vdA01
。使用 时alphabetic
,标签为vAal01
。是否也可以包含d
?含义:vdAa01
或vdAal01
?根据custombib
,我认为它是“alpha”(alph
)样式,不是吗?
我有提示应该使用\DeclareLabelalphaTemplate
biblatex 手册中的(第 4.5.4 节)。也许有人比我更有经验来模拟 LNI 的行为?custombib
也支持这一点
%file based on http://tex.stackexchange.com/a/21383/9075
\documentclass{article}
\usepackage[
backend = biber,
style = alphabetic,
useprefix = true
]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
author = {van der Aalst, Wil},
year = {2001},
title = {Alpha},
}
@misc{B02,
author = {Buthor, B.},
year = {2002},
title = {Bravo},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\nocite{*}
\begin{document}
Some text \autocite{A01,B02}.
\printbibliography
\end{document}
答案1
请尝试使用 Sourceforge 开发文件夹中的 biblatex 3.2/biber 2.3。正如 @moewe 所指出的,前缀的子字符串以前是硬编码的。Biber 开发通常是一个将硬编码内容变成选项的过程,现在剩下的硬编码内容非常少……
\field
现在,在\DeclareLabelalphaTemplate
-pstrwidth
和中有两个新的规范选项pcompound
,分别控制从前缀中取出多少个字符以及是否将复合前缀的组件视为van der
子字符串操作的单独单元(如compound
姓氏选项)。使用新选项,您可以在序言中得到您想要的东西:
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{shorthand}
\field{label}
\field[strwidth=3,strside=left,ifnames=1,pcompound=true]{labelname}
\field[strwidth=1,strside=left,pcompound=true]{labelname}
}
\labelelement{
\field[strwidth=2,strside=right]{year}
}
}