Pandoc citeproc 无法识别 pnfmt{}

Pandoc citeproc 无法识别 pnfmt{}

情况:

  • 我正在使用 pandoc 将 .tex 转换为 .docx(出于协作目的...)。
  • 因为我使用了很多带有“强调”的引文(使用 authordate),所以我pnfmt{}只将字段格式应用于页码。这在 texse 上有解释这里

因此,我的许多引用看起来是这样的:

First citation \autocite[382]{sigfridsson1999}
Second citation \autocite[\pnfmt{382}]{sigfridsson1999}
Third citation \autocite[\pnfmt{382}, emphasis added]{sigfridsson1999}

使用 pandoc,

pandoc --bibliography=references.bib --citeproc -o out.docx main.tex

我在第一次引用时获得了正确的输出,但没有在第二次和第三次引用时获得正确的输出:

第一次引用(Sigfridsson,1999,第 382 页)

第二次引用(Sigfridsson,1999)

第三次引用(Sigfridsson,1999,重点补充)

有什么方法可以让 pandoc 识别\pnfmt{}并打印第二和第三个引用的页码?

答案1

Pandoc 可以解析您自己的定义,在您的文档中的某个地方添加虚拟定义\renewcommand\pnfmt[1]{#1}(您可以添加包含带有选项的行的文件--include-in-header=FILE)就可以了。

答案2

可能有更好的方法,但一个简单的解决方法可能是\pnfmt在文档本身中(重新)定义,让 Pandoc/citeproc 使用该定义。当然,这意味着您无法获得\pnfmt处理所有不同情况的常规处理,但对于与合作者共享文档,只要您使用 LaTeX 生成最终结果(在这种情况下,您需要再次删除重新定义),这可能不是什么大问题。

梅威瑟:

\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=authoryear-ibid, ibidpage]{biblatex}

\addbibresource{biblatex-examples.bib}

\begin{document}
\def\pnfmt#1{, pg. #1}
First citation \autocite[382]{sigfridsson}
Second citation \autocite[\pnfmt{382}]{sigfridsson}
Third citation \autocite[\pnfmt{382}, emphasis added]{sigfridsson}
\printbibliography
\end{document}

结果:

在此处输入图片描述

相关内容