Синтаксическая ошибка с INCOLLECTION, название книги в bibtex

Синтаксическая ошибка с INCOLLECTION, название книги в bibtex

Мой файл .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 автоматически сформирует соответствующие метки года.

Связанный контент