上下文和參考書目

上下文和參考書目

嘗試編譯在 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

相關內容