使用 ConTeXt 的引文宏

使用 ConTeXt 的引文宏

考虑以下例子(背景这个问题)。

\setupbibtex[database={library},sort=author]
\setuppublications[alternative=apa]

%\define[1]\reference{\cite[data][#1]}

\starttext
\cite[data][Bohr:1923tl]
%\reference{Bohr:1923tl}

\section{References}
\placepublications[criterium=all]

\stoptext

通过 Mk-IV 运行后显示出预期的行为:

没有定义

只需通过取消注释来定义宏define- 甚至没有使用它 - 就会破坏它。(def也无济于事)。

在此处输入图片描述

如何定义引用宏?

答案1

详细阐述一下我的评论:\referenceContext 用户界面到 pdf 超链接功能(好奇:它在类似的命令中定义strc-ref.mkvi)。它也可内部使用,例如在宏中\thebibtexpublicationlistelement,它排版参考书目列表的单个条目(参见圣经-bib.mkiv)。

因此,重新定义\reference是一个坏主意™:它肯定会破坏自动生成的参考文献,损坏的参考书目是附带损害。如果您使用\define,Context 会在日志文件中给您一个提示:

system          > command \reference is already defined

选择一个无害的宏标识符:大写例如,这将确保宏永远不会与任何内部函数发生冲突。因此,\Reference这是更好的选择。

相关内容