With biblatex it's possible to fill a special field used for sorting names; with the standard BibTeX tools one can use
author={{\noop{ivanov}}\CYRI\cyrv\cyra\cyrn\cyro\cyrv, \CYRI\cyrv\cyra\cyrn},
having put in the document's preamble the definition
\newcommand{\noop}[1]{}
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.
Most of the needed changes to the numeric
style of biblatex
are easy -- the somewhat tricky part (I hope I got it right) is switching the location of the pages field. Traditional unsrt
:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{Dudarev1998,
author = {Dudarev, S. L. and Botton, G. A. and Savrasov, S. Y. and Humphreys,
C. J. and Sutton, A. P.},
title = {Electron-energy-loss spectra and the structural stability of nickel
oxide: An LSDA+U study},
journal = {Phys. Rev. B},
year = {1998},
volume = {57},
pages = {1505--1509},
month = {Jan},
doi = {10.1103/PhysRevB.57.1505},
number = {3},
publisher = {American Physical Society},
url = {http://link.aps.org/doi/10.1103/PhysRevB.57.1505}
}
\end{filecontents}
\begin{document}
\nocite{*}
\bibliographystyle{unsrt}
\bibliography{\jobname}
\end{document}
biblatex
emulation:
\documentclass{article}
\usepackage[sorting=none,maxnames=99,firstinits=true,doi=false,url=false]{biblatex}
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{#1}
\renewbibmacro{in:}{%
\ifentrytype{article}{%
}{%
\printtext{\bibstring{in}\intitlepunct}%
}%
}
\DeclareFieldFormat{pages}{#1}
\DeclareFieldFormat[article]{number}{\mkbibparens{#1}}
\renewbibmacro*{volume+number+eid}{%
\setunit{\addcomma\space}%
\printfield{volume}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}%
\setunit{\addcolon}%
\printfield{pages}}
\renewbibmacro*{issue+date}{%
\setunit{\addcomma\space}%
\iffieldundef{issue}
{\usebibmacro{date}}
{\printfield{issue}%
\setunit*{\addspace}%
\usebibmacro{date}}%
\newunit}
\renewbibmacro*{note+pages}{%
\printfield{note}%
\newunit}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{Dudarev1998,
author = {Dudarev, S. L. and Botton, G. A. and Savrasov, S. Y. and Humphreys,
C. J. and Sutton, A. P.},
title = {Electron-energy-loss spectra and the structural stability of nickel
oxide: An LSDA+U study},
journal = {Phys. Rev. B},
year = {1998},
volume = {57},
pages = {1505--1509},
month = {Jan},
doi = {10.1103/PhysRevB.57.1505},
number = {3},
publisher = {American Physical Society},
url = {http://link.aps.org/doi/10.1103/PhysRevB.57.1505}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\nocite{*}
\begin{document}
\printbibliography
\end{document}
Note: I assumed that you used the issue
field by mistake and that the number
field is the correct one (both for traditional BibTeX and biblatex
).
Best Answer
EDITED: You could try the following: copy
alpha.bst
to your tex directory and rename it e.g. toalpha_plsort.bst
(you can find the location of the bst files withkpsewhich <bst-file>
). In this file locate the definition of the functionpresort
and rename it topresort.alpha
. Now openplain.bst
, copy thepresort
function from there, paste it intoalpha_plsort.bst
and rename it topresort.plain
. Then change the callITERATE(presort)
toITERATE(presort.plain)
and insertITERATE(presort.alpha)
after the call to theSORT
function. Your new bst file should look now something like this: