Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Лексикографический порядок в списке литературы (на BibTeX) #188

Closed
dustalov opened this issue May 13, 2017 · 5 comments

Comments

@dustalov
Copy link
Contributor

Я использую BibTeX и стиль utf8gost71s для оформления библиографии. Мне нужно упорядочить список литературы так, что в начале списка перечислены русскоязычные источники в алфавитном порядке, а в конце списка — англоязычные источники в алфавитном порядке.

На ЛОРе было предложено решение с префиксом:

FUNCTION {presort}
{
  language "russian" =
    {"_"}
    {""}
  if$
  author.title.sort
  "   "
  *
  year field.or.null sortify
  *
  "   "
  *
  title field.or.null
  sort.format.title
  *
  #1 entry.max$ substring$
  'sort.key$ :=
}

Увы, это решение у меня не заработало; для каждой записи выводится сообщение об ошибке:

---the literal stack isn't empty for entry Quillian:67
while executing---line 1521 of file BibTeX-Styles/utf8gost71s.bst
ptr=1, stack=

Меня бы вполне устроил вариант с указанием поля key для каждой записи, но в текущей реализации стиля, похоже, это поле игнорируется. Быть может, у кого-нибудь есть готовый рецепт для этого?

XeTeX 3.14159265-2.6-0.99996 (TeX Live 2016)
BibTeX 0.99d (TeX Live 2016)
@LSinev
Copy link
Contributor

LSinev commented May 13, 2017

Не уверен, что правильно называть желаемое «лексикографическим порядком», но, может быть, стоит отказаться от bibtex, перейти на biblatex (плюс biblatex-gost 1.14) и воспользоваться упоминаемым в odomanov/biblatex-gost#6.

@dustalov
Copy link
Contributor Author

Дважды лексикографический порядок ☺. Я бы хотел остаться на BibTeX, хотя мне понятна причина, по которой люди используют biblatex. Должно быть, реализовать и поддерживать ГОСТ на таком языке — не слишком приятное занятие.

@dustalov
Copy link
Contributor Author

Нашёл в IEEEtranS.bst подходящий кусок кода и переписал вот так.

FUNCTION {presort}
{
  key empty$
    { "_" }
    { key sortify }
  if$
  'sort.key$ :=
}

Теперь все источники идут в порядке цитирования, если не указан key.

@LSinev
Copy link
Contributor

LSinev commented May 13, 2017

key … игнорируется

Возможно, надо подключить ещё пакет natbib.
Можно ещё попробовать ugost2003s.bst из разных веток и коммитов пакета GOST

@Lenchik Lenchik changed the title Лексикографический порядок в списке литературы Лексикографический порядок в списке литературы (на BibTeX) May 14, 2017
@dustalov
Copy link
Contributor Author

Предлагаю закрыть тему, потому что я решил проблему при помощи кода, приведённого выше.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants