Можно ли отсортировать порядок ссылок, используя порядок в .bib
файле?
решение1
Вот решение, которое должно работать слюбойbib-файл, в том числе файл, в котором записи отсортированы в обратном алфавитном порядке.
Сначала вставьте следующую инструкцию в начало файла bib:
@preamble{ "\newcommand{\noop}[1]{}" }
На первый взгляд, \noop
инструкция может показаться бессмысленной, поскольку она ничего не делает со своим аргументом. Хотя это верно дляНабор текста LaTeXбеги, этонетверно дляСортировка BibTeXфаза. Фактически, для фазы сортировки своей работы BibTeX заменит \noop{abc}
на abc
и будет считать " abc
" частью материала, который необходимо отсортировать в алфавитном порядке.
Во-вторых, если в файле bib менее 26*26=676 записей, вставьте инструкции \noop{aa}
, \noop{ab}
, ..., \noop{az}
, \noop{ba}
, \noop{bb}
, ... непосредственно (без пробела) перед фамилией первого автора в author
поле каждой записи:
@article{xyz,
author = "Dane \noop{aa}Miller and Jane Smith",
...
}
@book{123,
author = "Jill \noop{ab}Anderson and Bill Carlson",
...
}
...
@techreport{johnson:2012,
author = "\noop{ac}Johnson, Jimmy",
...
}
(Если у вас более 676 записей, просто увеличьте длину строки аргумента \noop
соответствующим образом, например, до aaaa
, aaab
, и т. д.)
В-третьих, обязательно используйте файл стиля библиографии, который сортирует записи библиографических номеров в алфавитном порядке. Теперь смысл инструкций \noop
должен быть ясен: длясортировка целей, соответствующие фамилии — «aaMiller», «abAnderson» и «acJohnson», и, следовательно, три записи будут отсортированы так же, как они указаны в файле bib (а не «Anderson», затем «Johnson», а затем «Miller»). Позже, когда LaTeX выполнит набор текста, он отбросит префиксы aa
, ab
, и т. д., и имена будут набраны правильно.
решение2
Решение от @egreg было предоставлено в этой теме:https://tex.stackexchange.com/a/56640/204235
\nocite{*}
можно добавлять в начало документов перед любыми цитатами, ваша библиография будет напечатана в том же порядке, что и ваша, .bib
и вы по-прежнему можете добавлять цитаты, которые будут использовать нумерацию из вашего .bib
.