标签上的全名

标签上的全名

如何获取由第一作者全名后跟两个年份数字组成的 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 节“标签”。

相关内容