pypandoc + pandoc-citeproc 将 bib 转换为 rst
pypandoc + pandoc-citeproc to convert bib to rst
我有一个带有引用的 .bib 文件,我想将该文件呈现为重组文本(换句话说,我的输入是一个文件 references.bib,我想要的是文件 references.rst)。该转换应该使用 Python 脚本完成,因此我尝试将 pypandoc(版本 0.9.7,pandoc 版本 1.13.1)与 pandoc-citeproc 过滤器结合使用。
pypandoc 和 pandoc 已正确安装,例如以下作品
import pypandoc
print(pypandoc.get_pandoc_version())
我的第一个想法是在 tex 或 md 文件中使用某种 nocite* 命令并将其转换。从命令行使用时(改编)example from the pandoc-citeproc issue tracker 有效:
pandoc references.tex -o references.rst --bibliography references.bib
但是我没有成功地用 pypandoc 从 python 做同样的事情,我特别不清楚如何传递额外的参数,例如更改同上行为或指定一个 CSL style(更改 biblatex 样式似乎没有效果)。
此外,我不太喜欢 .tex 文件的解决方法。
我可以跳过那部分吗?
您可以使用 citeproc-py。您将需要:
- 创建一个
citeproc.CitationsStyleBibliography
,将引用样式、bibtex 引用源和 reStructuredText 格式化程序传递给它;
- 注册您的书目来源中的每个元素;
- 打印参考书目。
您可以在 examples/ directory of citeproc-py
, or in bibgen source code. Note that bibgen allows you to directly include a bibliography in a reStructuredText document (including Sphinx sources), see this example 中找到这些步骤的示例。
我有一个带有引用的 .bib 文件,我想将该文件呈现为重组文本(换句话说,我的输入是一个文件 references.bib,我想要的是文件 references.rst)。该转换应该使用 Python 脚本完成,因此我尝试将 pypandoc(版本 0.9.7,pandoc 版本 1.13.1)与 pandoc-citeproc 过滤器结合使用。 pypandoc 和 pandoc 已正确安装,例如以下作品
import pypandoc
print(pypandoc.get_pandoc_version())
我的第一个想法是在 tex 或 md 文件中使用某种 nocite* 命令并将其转换。从命令行使用时(改编)example from the pandoc-citeproc issue tracker 有效:
pandoc references.tex -o references.rst --bibliography references.bib
但是我没有成功地用 pypandoc 从 python 做同样的事情,我特别不清楚如何传递额外的参数,例如更改同上行为或指定一个 CSL style(更改 biblatex 样式似乎没有效果)。
此外,我不太喜欢 .tex 文件的解决方法。 我可以跳过那部分吗?
您可以使用 citeproc-py。您将需要:
- 创建一个
citeproc.CitationsStyleBibliography
,将引用样式、bibtex 引用源和 reStructuredText 格式化程序传递给它; - 注册您的书目来源中的每个元素;
- 打印参考书目。
您可以在 examples/ directory of citeproc-py
, or in bibgen source code. Note that bibgen allows you to directly include a bibliography in a reStructuredText document (including Sphinx sources), see this example 中找到这些步骤的示例。