如何使用 pandoc 在书目参考中转义“:”?

Posted

技术标签:

【中文标题】如何使用 pandoc 在书目参考中转义“:”?【英文标题】:How to escape a ":" in a bibliographic reference with pandoc? 【发布时间】:2014-01-25 15:25:25 【问题描述】:

基本上,有一个由 Zotero 4.0.17 自动生成的 bibtex 文件,我正在使用它在 markdown 文件中生成参考书目。使用的工具是 pandoc-1.12.1 和 pandoc-citeproc-0.2 。

这是名为notes.md的markdown文件

# State of the art

 - Wikipathways [@pico_wikipathways\:_2008]

# Bibliography

<!-- TODO is this usefull?
bibliography::research.bib -->
<!-- \bibliographyresearch So that RefTeX knows about the bibliography -->

这是名为research.bib的bibtex文件

@ARTICLEpico_wikipathways:_2008,
 author = Pico, Alexander R and Kelder, Thomas and van Iersel, Martijn P and Hanspers, Kristina and Conklin, Bruce R and Evelo, Chris,
 title = WikiPathways: Pathway Editing for the People,
 journal = PLoS Biol,
 year = 2008,
 volume = 6,
 pages = e184,
 number = 7,
 month = jul,
 abstract = WikiPathways provides a collaborative platform for creating, updating, and sharing pathway diagrams and serves as an example of content  curation by the biology community.,
 doi = 10.1371/journal.pbio.0060184,
 keywords = \_tablet,
 shorttitle = WikiPathways,
 url = http://dx.doi.org/10.1371/journal.pbio.0060184,
 urldate = 2013-11-20

这是我运行的命令

pandoc --bibliography=research.bib notes.md -o notes.md.pdf

我期待一切顺利,但 : 字符的存在使 PDF 的生成成功,但出现以下错误

pandoc-citeproc: reference pico_wikipathways not found

PDF 的参考书目不正确。

知道如何在notes.md 中转义: 以便识别书目参考吗?

【问题讨论】:

仅供参考。我在forums.zotero.org/discussion/34228/… 得到了一些有趣的解决方法建议 仅供参考。这个问题现在已经在 pandoc 的 master 分支中修复了。详情请查看github.com/jgm/pandoc/commit/…。 仅供参考。此问题已在 pandoc 1.12.3.1 中永久修复。 【参考方案1】:

您必须更改密钥。 Pandoc 的引用键解析器当前不允许连续使用多个非字母数字符号,因此带有 :_ 的键失败。此外,请勿在引用键中的 : 之前使用反斜杠。

【讨论】:

正如我所说,密钥是从 Zotero 自动生成的。这意味着我要按照您的建议去做并不容易。我会尝试看看是否有办法改变生成密钥的规则,但我不确定如何。 更改 pandoc 以允许这些键可能更容易。如果您愿意,可以在 github.com/jgm/pandoc/issues 提交问题。 我刚注意到你的名字。也感谢 Pandoc。【参考方案2】:

从版本 1.12.3 开始,此问题似乎已得到修复。使用

卸载当前版本
sudo rm -f /usr/local/bin/pandoc /usr/local/doc/pandoc-1.9.4.2 /usr/local/share/man/man1/pandoc.1.gz /usr/local/share/man/man5/pandoc_markdown.5.gz /usr/local/share/pandoc-1.9.4.2

然后重新安装 pandoc 就可以了。

【讨论】:

请注意我的问题本身。

以上是关于如何使用 pandoc 在书目参考中转义“:”?的主要内容,如果未能解决你的问题,请参考以下文章

使用 pandoc 在 pdf 文件中导出所有 yaml 书目

科学论文的完整参考书目

如何为大查询制作类似 java 准备语句的查询或如何在大查询中转义参数

如何在 Oracle 中转义保留字?

如何在 Bash 中转义双引号? [复制]

如何在 Sybase 中转义单引号