For users of traditional BibTeX, i.e., without using biblatex
:
Copy TEXMF/bibtex/bst/base/alpha.bst
to a new file alpha-abbrvsort.bst
in a place where BibTeX will find it. Open it in an text editor, locate the function presort
, and comment the four lines as shown here:
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$ :=
}
Save and close, and use it as normal:
\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}
Works:
For a one-off document where there is only one (or very few) entries that require special sorting treatment, it is not unreasonable to create a 'special' entry and use that entry instead.
\documentclass[12pt]{article}
\usepackage{natbib}
\newcommand{\noop}[1]{}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Article{adams1986,
author = {Adams, Anthony},
title = {Article Title},
journal = {Journal},
year = 1986,
volume = 46,
pages = {1--35},
}
@Article{zedson2013,
author = {Zedson, John},
title = {Zarticle title},
journal = {Journal},
year = 2013,
volume = 22,
pages = {141--181},
}
@Article{zedson2013-special,
author = {{\noop{AAA}}Zedson, John},
title = {Zarticle title},
journal = {Journal},
year = 2013,
volume = 22,
pages = {141--181},
annote = {NOTE: use for special sorting},
}
\end{filecontents}
\begin{document}
\cite{adams1986}
\cite{zedson2013}
\cite{zedson2013-special}
\bibliographystyle{plain}
\bibliography{\jobname}
\end{document}
If you use biber
, an easy way to achieve unorthodox/special sorting is to add a sortkey = {<sortkey>}
to the entry in question. From the biblatex
manual (§ 2.2.3):
A field used to modify the sorting order of the bibliography. Think of
this field as the master sort key. If present, biblatex uses this
field during sorting and ignores everything else, except for the
presort field. Please refer to § 3.5 for further details. This field
is consumed by the backend processing and does not appear in the .bbl.
If only using (an alphabetical) biblatex
(style) with BibTeX
as the backend, you can do something similar by utilizing the sortname
field.
Best Answer
With biblatex it's possible to fill a special field used for sorting names; with the standard BibTeX tools one can use
having put in the document's preamble the definition
Of course it's possible to write anything one wants as the argument to
\noop
, for example a common prefix such as\noop{zzz-ivanov}
would sort all Russian authors at the end.