使用alpha
书目样式,引文按引文键排序。我想使用相同的作者-年份引文键样式(例如 [CP92]),但书目按第一作者的姓氏排序,而不是按引文键本身的字母顺序排序。这样可以将同一第一作者的相同论文放在一起。
例如,alpha
将产生以下排序顺序:
- [Cha81] D. Chaum。无法追踪……
- [CL04] J. Camenisch 和 A. Lysyanskaya。签名...
- [CP92] D. Chaum 和 T. Pedersen。钱包...
而abbr
将产生以下排序顺序:
- [1] J. Camenisch 和 A. Lysyanskaya。签名......
- [2] D. Chaum. 无法追踪……
- [3] D. Chaum 和 T. Pedersen. 钱包......
我正在寻找相同的排序abbr
但保持的引用关键字样式alpha
。
有没有办法实现这种混合风格?
答案1
对于传统 BibTeX 的用户,即不使用biblatex
:复制TEXMF/bibtex/bst/base/alpha.bst
到 BibTeX 可以找到它的新文件alpha-abbrvsort.bst
中。在文本编辑器中打开它,找到函数presort
,并注释掉下面四行:
FUNCTION {presort}
{ calc.label
% sort.label %% four lines commented out to obtain presort of abbrv.bst
% " " %%
% * %%
type$ "book" =
type$ "inbook" =
or
'author.editor.sort
{ type$ "proceedings" =
'editor.organization.sort
{ type$ "manual" =
'author.organization.sort
'author.sort
if$
}
if$
}
if$
% * %%
" "
*
year field.or.null sortify
*
" "
*
title field.or.null
sort.format.title
*
#1 entry.max$ substring$
'sort.key$ :=
}
保存并关闭,然后正常使用:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{PulpSpy.bib}
@misc{a, author={Chaum, D.}, title = {Untracable ...}, year = {1981}}
@misc{b, author={Chamenisch, J. and Lysyanskaya, A.}, title={Signature...}, year={2004}}
@misc{c, author={Chaum, D. and T. Pedersen, T.}, title={Wallet...}, year={1992}}
\end{filecontents}
\begin{document}
\nocite{*}
\bibliographystyle{alpha-abbrvsort}
\bibliography{PulpSpy}
\end{document}
作品:
答案2
如果你愿意切换到biblatex
,操作方法如下:
\documentclass{article}
\usepackage[style=alphabetic,sorting=nty]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{C,
author = {Chaum, D.},
year = {1981},
title = {Untraceable \dots},
}
@misc{CL,
author = {Camenisch, J. and Lysyanskaya, A.},
year = {2004},
title = {Signature \dots},
}
@misc{CP,
author = {Chaum, D. and Pedersen, T.},
year = {1992},
title = {Wallet \dots},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\nocite{*}
\begin{document}
\printbibliography
\end{document}