
Пытаюсь составить простой пример использования библиографии в 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
Соответствующий файл с нагрудным номером:
@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