
我的 .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
。如果欄位是純數字(或如果它們是字串變量,但這在此處不適用),則允許在不使用{...}
或分隔符號的情況下寫入欄位。相關兩個條目的欄位" ... "
是和。這種數字和字母的混合也會引發錯誤。為了避免觸發錯誤訊息,您可以分別編寫和。然而,這並不是一個很好的做法,因為無論您是否在文件中引用了其中的一項或兩項出版物,您都會將字母和相關資訊硬編碼。最好定義一個宏,如下所示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 將自動形成適當的年份標籤。