5

我正在使用Leo、 yaml 和 pandoc 创建一个 pdf。为此,我的工作流程是这样的:

  1. 我收集了所有相关项目作为zotero收藏
  2. 我将它们全部导出为 CSL JSON,并使用 biblio2yaml 将其转换为 yaml
  3. 我创建了一个带有 markdown 节点的 Leo 大纲和一个 yaml 节点,其中包含我想要编写的所有信息以及所有收集的参考书目项目,并制作了一个小脚本来遍历大纲并根据需要导出内容。
  4. 最后在我运行的输出文件上:

    pandoc --filter pandoc-citeproc output.markdown -o output.pdf
    

并且工作得很好。问题是我想告诉 pandoc 包括所有参考书目项目,无论它们是[@reference]在降价文本中引用还是只是收集在参考书目的嵌入式 yaml 块中。这可能吗?如果没有,有一些方法可以编写 pandoc 来做类似的事情吗?

PS:我在 pandoc 的降价中使用了 [-@reference] 技巧,试图将参考书目的非显式引用放在导出的文件中,但随后我在导出的 pdf 中得到了一年的括号,正如人们所期望的那样,所以这不是要走的路。

4

2 回答 2

5

最终,我想在 pandoc 中添加一个语法,用于标记引用以包含在参考书目中,而不是将它们放入文本中。

但就目前而言,您最好的选择是将所有参考文献都放在文本中,并修改您的 CSL 文件,以便不打印实际的引文(只是参考书目)。我无法就如何做到这一点提供指导,但我听说其他人这样做,所以我知道这是可能的。

于 2013-11-20T16:32:40.040 回答
2

pandoc的 README 1给出了解决方案。您需要定义一个虚拟nocite元数据字段并将引文放在那里:

# References

The bibliography will be inserted after this header.  Note that
the `unnumbered` class will be added to this header, so that the
section will not be numbered.

If you want to include items in the bibliography without actually
citing them in the body text, you can define a dummy `nocite` metadata
field and put the citations there:

---
nocite: |
  @item1, @item2
...

@item3

In this example, the document will contain a citation for `item3`
only, but the bibliography will contain entries for `item1`, `item2`, and
`item3`.
于 2016-04-08T15:58:25.867 回答