尝试编译在 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 的参考书目一样。使用 Context 可以实现吗?
答案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