LaTeX 宏/命令将 BibTeX 条目转换为自定义键

LaTeX 宏/命令将 BibTeX 条目转换为自定义键

我想定义一个命令,例如\paperkey{bibitem},其中如果bibitem包含一篇论文的 BibTeX 条目,例如

Foo A、Bar B、一些标题,2004

它生成FB04输出。

换句话说,我想按顺序从每个作者姓氏的首字母开始生成文本,然后是两个字母的年份。如果命令/宏可以将 4 个以上的其他作者替换为+: CJKW+10,则可获得加分。

有没有简单的方法可以实现这一点?

答案1

biblatex(使用选项)很简单labelalpha

只需声明一个模板来构建标签即可。具体来说,该模板使用名称和年份来构建标签,并指定如何解析名称(使用\DeclareLabelalphaNameTemplate)。最后一步是为创建一个特殊的引用命令\paperkey

\documentclass{article}

\usepackage[labelalpha=true,minalphanames=3,maxalphanames=3]{biblatex}

\addbibresource{biblatex-examples.bib}

\DeclareLabelalphaTemplate{
  \labelelement{
    \field[strwidth=1,strside=left,names={1-3+}]{labelname}
  }
  \labelelement{
    \field[strwidth=2,strside=right]{year}
  }
}

\DeclareLabelalphaNameTemplate{
   \namepart[strwidth=1]{family}
}

\DeclareCiteCommand{\paperkey}
  {}
  {\printfield{labelalpha}}
  {}
  {}

\begin{document}

\paperkey{herrmann}

\paperkey{sigfridsson}

\printbibliography
\end{document}

在此处输入图片描述

相关内容