0

所以我最近开始在 Windows 系统 for linux (WSL) 上使用 pandoc 来生成 PDF。我遇到了一个奇怪的问题,pandoc-citeproc 无法为数字创建正确的文本引用,而是说明pandoc-citeproc: reference fig:figure5a not found

在降价中,我使用以下方式声明图像:

![captions here](../resources/figure5a.pdf){#fig:figure5a width=90%}

并使用以下方法参考图像:

[@fig:figure5a]

谁能给我关于发生了什么的建议?当通过 ubuntu os 而不是 wsl 调用 pandoc 时,它可以工作。此外,pandoc 是 v2.7,pandoc-citeproc 是 v0.16.1.1。

4

1 回答 1

2

因此,随着我论文的最后期限即将到来,我想通了:我正在使用 pandoc 学者和一个 makefile 来指导文件创建。我还没有弄清楚所有细节,但是有一些 pandoc 学者正在调用 citeproc。现在由于 citeproc 和 crossref 使用类似的表示法,需要首先调用 crossref (我似乎无法做到这一点,因为再次,pandoc 学者中的某处某处)

解决方案:在 makefile 中,先调用 crossref,然后再调用 citeproc。它仍然会从第一次 citeproc 调用中抛出错误,并且需要更长的时间,但它可以工作。

编辑:一些话

编辑2:这是我所做的一个例子。请注意,我将 FILTERS = XXXXXX 行重复了两次。开始时一次,然后在声明 ARTICLE_FILE、BIB、PDFENGINE 等详细信息后再次。可能不是最好的方法,但它有效,而且我不会在提交后修复我的论文!

TEMPLATE = uni-thesis

FILTERS = --filter pandoc-crossref --filter pandoc-citeproc  --lua-filter=short-captions.lua

EXTENSIONS := simple_tables+table_captions+yaml_metadata_block+smart

PDFENGINE=pdflatex

## CSL stylesheet (usually located in ~/.csl)
CSL = elsevier-harvard-thesis

ARTICLE_FILE        = THESIS-name.md
OUTFILE_PREFIX      = THESIS-name
DEFAULT_EXTENSIONS  = pdf
BIB   = ../citations.bib
PDFENGINE=pdflatex

FILTERS = --filter=pandoc-crossref --filter=pandoc-citeproc  --lua-filter=short-captions.lua

EXTENSIONS := simple_tables+table_captions+yaml_metadata_block+smart
PANDOC_LATEX_OPTIONS  = --pdf-engine=$(PDFENGINE)

LUA_FILTERS +=  $(LUA_FILTERS_PATH)/pagebreak/pagebreak.lua

OS := $(shell uname)
于 2019-07-13T06:15:13.490 回答