Erro de sintaxe com INCOLLECTION, título do livro no bibtex

Erro de sintaxe com INCOLLECTION, título do livro no bibtex

Meu arquivo .bib fica assim:

@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 = {},
    }

mas por alguma razão, o que eu colocar primeiro aparece com uma mensagem de erro na linha do título do livro, dizendo

BibTeX: erro de sintaxe: encontrado "booktitle", final de entrada esperado ("}" ou ")") (pulando para o próximo "@")

Alguma ideia de como consertar isso?

Responder1

Nas entradas stal2e stal3, falta uma vírgula no final do titlecampo. Vírgulas sãoobrigatóriocomo separadores entre campos. O BibTeX está procurando um sinal para encerrar o titlecampo, mas encontra a palavra-chave booktitle, disparando um relatório de erro de sintaxe.

Aliás, também falta uma vírgula no final do pagescampo na entrada stal4.

Termo aditivo: Um tipo ainda diferente de erro de sintaxe se esconde nos yearcampos de entradas stal2e stal3. Os campos podem ser escritos sem {...}delimitadores " ... "se forem puramente numéricos (ou se forem uma variável de string, mas isso não se aplica aqui). Os yearcampos das duas entradas em questão são year = 1999a,e year = 1999b,. Essa mistura de números e letras também causará um erro. Para evitar o disparo de uma mensagem de erro, você poderia escrever year = {1999a},e year = {1999b},, respectivamente. No entanto, isso não é realmente uma boa prática, pois você codificaria as letras ae bas yearinformações relacionadas, citando ou não apenas uma ou ambas as publicações em seu documento. É muito melhor definir uma macro chamada \noopsortda seguinte forma

\providecommand\noopsort{#1}{}

e escreva os campos do ano como year = {1999{\noopsort{a}}},e year = {1999{\noopsort{b}}},, respectivamente. O BibTeX formará automaticamente os rótulos de ano apropriados.

informação relacionada