上下文 mkiv 和 \cite

上下文 mkiv 和 \cite

在 Context MKIV 中使用参考书目时,仅在一种情况下会产生令人讨厌的破折号。(-Eastwood,1997)。所有其他脚注都可以正常工作,在 Latex 中也可以正常工作。一些非标准字符?

\mainlanguage[english]
\usebtxdataset[default][mydatabase.bib]
\loadbtxdefinitionfile[apa]
\usebtxdefinitions[apa]
\setupbtx[dataset=default]
\definebtxrendering[default][apa][specification=chicago,sorttype=authoryear,numbering=no]

\starttext

\startbodymatter

Test.\cite[Eastwood:1997]

\stopbodymatter

\startbackmatter
\startchapter[title=Bibliography]
\placelistofpublications[criterium=all]
\stopchapter
\stopbackmatter

\stoptext

% Don't know how to make filecontents in Context, here is mydatabase.bib

@Article{Eastwood:1997,
        title = {Astronomy in Christian Latin Europe c. 500 - c. 1150},
        author = {Bruce Eastwood},
        journal = {Journal for the History of Astronomy},
        volume = {28},
        year = {1997},
        pages = {235-258},
        language = {english},
        hyphenation = {english},
}

答案1

您描述的问题无法使用问题中的示例重现,因为它缺少必要的信息。实际问题在于\setbreakpoints[compound]书目系统,与书目系统完全无关。不幸的是,\setbreakpoints[compound]这个问题完全被忽略了。以下最低限度的工作示例(MWE)重现该问题。

\setupbodyfont[palatino,14pt]
\setbreakpoints[compound]
\starttext
Antique astronomy was gradually replaced
by the logic of counting.(Eastwood)
\stoptext

在此处输入图片描述

这种行为不是预期的,我认为不应该发生。因此,我在 ConTeXt 邮件列表中将此作为错误报告。https://mailman.ntg.nl/pipermail/ntg-context/2019/093855.html

(作为一种解决方法,您可以简单地调整之前断点的定义\setbreakpoints

\definebreakpoint[compound][(][nleft=3,nright=3,type=5,left=,right=(,middle=(]
\setbreakpoints[compound]

在 ConTeXt 中实现的方法filecontents是使用缓冲区。btx模块可以直接从缓冲区读取参考书目,而不必存储中间文件。只需将其附加.buffer到 中的缓冲区名称即可\usebtxdataset

您可能还想添加\frenchspacing标题字段,以避免句号后出现过多的空格。

要在引文中包含页面信息,您应该使用键righttext,而不是right键。例如,apa样式设置right={)},因此当您覆盖时right,您将丢失右括号。

所有这些都在文档中详细描述ConTeXt 方式的参考书目

\startbuffer[mydatabase]
@Article{Eastwood:1997,
        title = {Astronomy in Christian Latin Europe c. 500 - c. 1500},
        author = {Bruce Eastwood},
        journal = {Journal for the History of Astronomy},
        volume = {28},
        year = {1997},
        pages = {235-258},
        language = {english},
        hyphenation = {english},
}
\stopbuffer

\usebtxdataset[default][mydatabase.buffer]
\usebtxdefinitions[apa]
\setupbtx[dataset=default]
\definebtxrendering[default][apa][specification=chicago,sorttype=authoryear,numbering=no]

\setupbtx
  [apa:list:title]
  [command=\frenchspacing]

\starttext

Test.\cite[righttext={p.~236--238}][Eastwood:1997]

\placelistofpublications[criterium=all]

\stoptext

在此处输入图片描述

相关内容