![按字母顺序显示 biblatex 中作者姓名的三个字母](https://linux22.com/image/289171/%E6%8C%89%E5%AD%97%E6%AF%8D%E9%A1%BA%E5%BA%8F%E6%98%BE%E7%A4%BA%20biblatex%20%E4%B8%AD%E4%BD%9C%E8%80%85%E5%A7%93%E5%90%8D%E7%9A%84%E4%B8%89%E4%B8%AA%E5%AD%97%E6%AF%8D.png)
我想安装新版本的样式,但我记不起我做了什么修改来显示作者姓名的更多字母。修改直接进入.bst
或.cst
文件。无论如何,我的引文显示为,
MijKomSpi09b
其中有三位作者,对于每位作者,我希望显示他们的前三个字母。除了三位作者之外,我只想要第一位作者的前三个字母(例如Mij+09
)。
是否可以直接在.tex
文件中执行此操作?目前我的设置是
\usepackage[backend=biber, sorting=nyt, citestyle=ieee-alphabetic,
bibstyle=ieee-alphabetic, maxnames=3,minnames=1,maxbibnames=99]{biblatex}
并且仅当只有一位作者时才显示前三个字母。对于多位作者,其形式为AHW09b
。
答案1
使用Biber,我们可以用来\DeclareLabelalphaTemplate
更改标签格式,我们还必须设置minalphanames=1
(即使用ieee-alphabetic
,否则您可能需要minalphanames=1, maxalphanames=3
)
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{shorthand}
\field{label}
\field[strwidth=3,strside=left]{labelname}
}
\labelelement{
\field[strwidth=2,strside=right]{year}
}
}
平均能量损失
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[backend=biber, sorting=nyt, style=ieee-alphabetic, minalphanames=1, maxbibnames=99]{biblatex}
\addbibresource{biblatex-examples.bib}
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{shorthand}
\field{label}
\field[strwidth=3,strside=left]{labelname}
}
\labelelement{
\field[strwidth=2,strside=right]{year}
}
}
\begin{document}
\cite{companion,knuth:ct} and \cite{baez/article} \cite{aksin}
\printbibliography
\end{document}