pandoc-citeproc如何排序引用?

时间:2015-03-06 16:07:21

标签: markdown pandoc csl

我有一个pandoc风格的Markdown文字,我在同一个地方引用了同一作者的两篇论文:

Lorem ipsum [@Author2000;@Author2001] dolor sit amet.

这将呈现为

  

Lorem ipsum(作者2001,2000)dolor sit amet。

为什么这些引文按照这种方式排序,与我的文本中的顺序相矛盾,与作者年份排序相矛盾,并且与它们在引用列表中出现的顺序相矛盾?我怎么能改变这个?是否可以关闭任何类型的排序并保持我指定引用的顺序?

更多信息:文本通过pandoc和选项--filter pandoc-citeproc --csl=elsevier-harvard.csl转换为latex,然后使用xelatex进行处理。 csl文件可以从Zotero下载。 Pandoc是v1.13.2,pandoc-citeproc是v0.6。

1 个答案:

答案 0 :(得分:7)

文本引文格式由您的CSL在<citation></citation>标记之间定义。引文的排序是在<sort></sort>标记之间定义的。您正在使用的CSL按作者排序,然后按发布的降序日期排序 - (作者2001,2000):

<citation ...>
    <sort>
        <key macro="author"/>
        <key macro="issued" sort="descending"/>
    </sort>
    ...
</citation>

按作者排序,然后按发出的升序日期排序 - (作者2000,2001):

<citation ...>
    <sort>
        <key macro="author"/>
        <key macro="issued" sort="ascending"/>
    </sort>
    ...
</citation>

要不对引文进行排序,只需删除<sort></sort>代码之间的所有内容。

<citation ...>
    <sort>
    </sort>
    ...
</citation>