![上下文和參考書目](https://rvso.com/image/328464/%E4%B8%8A%E4%B8%8B%E6%96%87%E5%92%8C%E5%8F%83%E8%80%83%E6%9B%B8%E7%9B%AE.png)
嘗試編譯在 ConText 中使用參考書目的簡單範例(來自 contextgarden wiki)。我的文件是:
\mainlanguage[russian]
\usemodule[simplefonts][size=12pt]
\setmainfont[XITS]
\setsansfont[Arial]
\setupbibtex[database={mybib},sort=author]
\setuppublications[alternative=apa]
\cite[Tolh]
\completepublications[criterium=all]
\stoptext
對應的bib檔為:
@Article{Tolh,
Title = {{Поляризация электронов. Теория и эксперимент}},
Author = {Тольхук, Х. А.},
Journal = {УФН},
Language = {russian},
Year = {1957},
Number = {12},
Pages = {761--800},
Volume = {63}
}
嗯,是俄語的,保存為utf8,主文件也是uft8的。因此,使用上下文的編譯會因錯誤而停止:
tex error > error on line 1 in file 2.bbl: ! String contains an invalid utf-8 sequence
l.1 \setuppublicationlist[samplesize={Т
�57},totalnumber=1]
1 >> \setuppublicationlist[samplesize={Т�57},totalnumber=1]
2
3 \startpublication[k=Tolh,t=article,
4 a={{Тольхук}},y=1957,
5 n=1,s=Т�57]
6 \lang{russian}
7 \artauthor[]{Х.~А.}[�.~�.]{}{Тольхук}
8 \pubyear{1957}
9 \arttitle{{Поляризация электронов. Теория и
10 эксперимент}}
11 \journal{УФН}
據我了解,這些“黑?”意味著一些編碼問題。如何解決?
最後,我會將出版物按照正文中引用的順序印在編號列表中,引用是括號中的數字(即[1]、[20]等)。就像 LaTeX 做參考書目一樣。可以用上下文嗎?
答案1
舊的書目系統使用 bibtex,它仍然依賴 ASCII(或多或少),這就是你的例子失敗的原因。上下文有一個新的書目系統完全繞過 bibtex;它可以做你想做的事。它仍然有點實驗性(而且文件並不像人們希望的那麼完整)。這是重寫的範例:
\mainlanguage[ru]
\setupbodyfont [xits, 30pt]
\usebtxdataset [mybib]
\usebtxdefinitions [aps]
\setupbtxrendering [default]
[numbering=yes]
\starttext
\cite[Tolh]
\placelistofpublications[criterium=all]
\stoptext
我想這就是你的意思。我不知道 LaTeX 是如何進行參考書目的目的——如果這對你來說是必要的,那麼堅持使用 LaTeX 可能會更好。
結果:
要轉儲完整的出版物列表,請使用:
\usebtxdataset[customname][database.bib]
\definebtxrendering[customname][apa][
dataset=customname,
numbering=yes,
]
\starttext
\startbackmatter
\startchapter[title=Bibliography]
\placelistofpublications[customname][method=dataset]
\stopchapter
\stopbackmatter
\stoptext