生成HTML时按年份在Pandoc中组织引用

时间:2019-11-15 19:32:36

标签: pandoc csl pandoc-citeproc

我对Pandoc还是比较陌生,我正在尝试使用出版物生成HTML文件以放在我的网站上。我想按年顺序对出版物清单进行编号和组织,最新的出版物排在第一位,最旧的出版物排在最后。

使用正确的csl文件可以很好地编号,但是不能进行年份排序。问题是我并不是所有出版物的第一作者,所以最终发生的事情是,它们是按字母顺序首先按字母顺序组织的,然后按日期排列,这不是我想要的。

通过将biblatex与选项sorting=ydnt(年份(降序),名称,标题)一起使用, <sort> <key variable="citation-number"/> </sort> 可以得到想要的结果,但是由于Pandoc不使用biblatex来生成引用HTML的列表,我在这里不能使用这种策略。

我能看到如何解决此问题的唯一方法是在Zotero style repo中获得符合我想要的引用样式,但我一直找不到。因此,我正在尝试修改其中一项,但是没有成功。

This answer讲授了一种更改排序样式的方法,因此我尝试手动更改《皇家学会B风格》的排序样式。具体来说,我正在改变

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

2.7.3

但是那是行不通的(可能是因为这仅更改了文本引用的排序,而不是引用列表)。我尝试了其他几件事,但是找不到有效的方法!

我猜这无关紧要,但是我使用的是Pandoc citeproc0.16.2版本--- bibliography: selectedpubs.bib nocite: '@*' linestretch: 1.5 fontsize: 12pt output: html: output: pubpage.html filter: pandoc-citeproc csl: prsb2.csl ... ,运行的文件是:

prsb2.csl

文件{{1}}只是Proceedings of the Royal Society B csl。

1 个答案:

答案 0 :(得分:1)

您的想法正确,但误解了链接的线程。除了要更改引文的排序键之外,您还想向书目添加排序,即

<bibliography second-field-align="flush" et-al-min="11" et-al-use-first="10">
   <sort>
      <key macro="issued" sort="descending"/>
      <key macro="author"/>
    </sort>
<layout>

除了修改样式之外,您还可以使用存储库中已经存在的APA-CV样式