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:語法錯誤:找到“書名”,預期條目結束(“}”或“)”)(跳到下一個“@”)

有想法該怎麼解決這個嗎?

答案1

在條目stal2和中stal3,字段末尾缺少一個逗號title。逗號是必需的作為欄位之間的分隔符號。 BibTeX 正在尋找終止該title欄位的訊號,但遇到關鍵字booktitle,觸發語法錯誤報告。

pages順便說一句, entry 字段末尾也缺少逗號stal4

附錄year:在條目stal2和的字段中潛伏著另一種不同類型的語法錯誤stal3。如果欄位是純數字(或如果它們是字串變量,但這在此處不適用),則允許在不使用{...}或分隔符號的情況下寫入欄位。相關兩個條目的欄位" ... "是和。這種數字和字母的混合也會引發錯誤。為了避免觸發錯誤訊息,您可以分別編寫和。然而,這並不是一個很好的做法,因為無論您是否在文件中引用了其中的一項或兩項出版物,您都會將字母和相關資訊硬編碼。最好定義一個宏,如下所示yearyear = 1999a,year = 1999b,year = {1999a},year = {1999b},abyear\noopsort

\providecommand\noopsort{#1}{}

並將年份欄位分別寫為year = {1999{\noopsort{a}}},year = {1999{\noopsort{b}}},。 BibTeX 將自動形成適當的年份標籤。

相關內容