How does pandoc-citeproc sort citations?

2019-01-27 23:42发布

问题:

I have a pandoc-style Markdown text where I cite two papers by the same author in the same place:

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

This is rendered as

Lorem ipsum (Author 2001, 2000) dolor sit amet.

Why are these citations sorted this way, contradicting the sequence in my text, contradicting author-year sorting, and contradicting the sequence in which they appear in the list of references? How can I change this? Is it possible to switch off any kind of sorting and keep the order in which I specify the citations?

More information: The text is converted by pandoc with the options --filter pandoc-citeproc --csl=elsevier-harvard.csl into latex and then processed with xelatex. The csl file can be downloaded from Zotero. Pandoc is v1.13.2, pandoc-citeproc is v0.6.

回答1:

In-text citation formatting is defined by your CSL between <citation></citation> tags. The sorting of your citations is defined between the <sort></sort> tags. The CSL you are using sorts by author and then by descending date issued - (Author 2001, 2000):

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

To sort by author and then by ascending date issued - (Author 2000, 2001):

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

To not sort the citations, just remove everything between the <sort></sort> tags.

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