
Мой файл .bib выглядит так:
@incollection{stal2,
author = {Robert Stalnaker},
title = {Assertion}
booktitle = {Context and Content},
publisher = {Oxford University Press},
year = 1999a,
pages = {78-95},
}
@incollection{stal3,
author = {Robert Stalnaker},
title = {On the Representation of Context}
booktitle = {Context and Content},
publisher = {Oxford University Press},
year = 1999b,
pages = {96-114},
}
@ONLINE {stal4,
author = "Robert Stalnaker",
title = "Common Ground",
publisher = "Linguistics and Philosophy 25",
pages = {701-721}
year = "2002",
url = "https://doi.org/10.1023/A:1020867916902https://www.oxfordhandbooks.com/view/10.1093/oxfordhb/9780190675233.001.0001/oxfordhb-9780190675233-e-27",
}
@BOOK{stal1,
title = {Inquiry},
publisher = {MIT Press},
author = {Robert Stalnacker},
year = {1984},
edition = {},
}
но по какой-то причине, какой бы вариант я ни указал первым, в строке названия книги появляется сообщение об ошибке:
BibTeX: синтаксическая ошибка: найдено «booktitle», ожидается конец записи («}» или «)») (переход к следующему «@»)
Есть какие нибудь идеи как это починить?
решение1
В записях stal2
и stal3
в конце поля отсутствует запятая title
. Запятыенеобходимыйв качестве разделителей между полями. BibTeX ищет сигнал для завершения title
поля, но встречает ключевое слово booktitle
, вызывая отчет об ошибке синтаксиса.
Кстати, в конце pages
поля entry также отсутствует запятая stal4
.
Приложение: Еще один тип синтаксической ошибки таится в year
полях записей stal2
и stal3
. Поля разрешается записывать без разделителей {...}
или " ... "
, если они чисто числовые (или если они являются строковой переменной, но это не применимо в данном случае). Поля year
двух рассматриваемых записей — year = 1999a,
и year = 1999b,
. Эта смесь цифр и букв также вызовет ошибку. Чтобы избежать появления сообщения об ошибке, вы можете написать year = {1999a},
и year = {1999b},
, соответственно. Однако это не очень хорошая практика, так как вы жестко закодируете буквы a
и b
в year
связанной с ними информации, независимо от того, цитируете ли вы только одну или обе публикации в своем документе. Гораздо лучше определить макрос, который называется \noopsort
следующим образом
\providecommand\noopsort{#1}{}
и запишите поля года как year = {1999{\noopsort{a}}},
и year = {1999{\noopsort{b}}},
, соответственно. BibTeX автоматически сформирует соответствующие метки года.