在 Ipython Notebook 中处理引用的最佳方法是什么?理想情况下,我想要一个 bibtex 文件,然后像在 Latex 中一样,在 Ipython markdown 单元格中拥有一个速记列表,并在笔记本末尾提供完整的参考文献。
我查到的相关资料是这样的:http://nbviewer.ipython.org/github/ipython/nbconvert-examples/blob/master/itations/Tutorial.ipynb http://nbviewer.ipython.org/github/ipython/nbconvert-examples/blob/master/citations/Tutorial.ipynb
但我无法很好地遵循文档。谁能解释一下吗?非常感谢!!
Summary
该解决方案主要基于 Sylvain Deville 的优秀的博客文章 https://sylvaindeville.net/2015/07/17/writing-academic-papers-in-plain-text-with-markdown-and-jupyter-notebook/。它允许你简单地写[@citation_key]
在降价单元格中。文档转换后,参考文献将被格式化。唯一的要求是 LaTeX 和 pandoc,它们都得到了广泛的支持。虽然永远不能保证,但这种方法在很多年后仍然有效。
分步指南
除了正常安装的 jupyter 之外,您还需要:
-
LaTeX (安装指南 http://sachaepskamp.com/LaTeX2015).
-
Pandoc (安装指南 http://pandoc.org/installing.html).
-
A 引文风格语言。下载引文样式,例如,APA https://github.com/citation-style-language/styles/blob/master/apa.csl。保存.csl
文件(例如,apa.csl
)到与你的jupyter笔记本相同的文件夹(或指定路径.csl
稍后归档)。
-
A .bib
file和你的参考资料。我正在使用一个示例围脖文件 http://shelah.logic.at/listb.bib list.bib
。保存到与您的 jupyter 笔记本相同的文件夹(或指定.bib
稍后归档)。
完成这些步骤后,剩下的就很简单了:
-
使用 Markdown 语法在 Jupyter Notebook 的 Markdown 单元格中进行引用。例如。,[@Sh:1]
其中语法的工作方式如下:([@citationkey_in_bib_file])
。与其他解决方案相比,我更喜欢这种语法,因为它的输入速度非常快[@something]
.
-
在 ipython 笔记本的末尾,使用以下语法创建一个代码单元自动转换您的文档(请注意,这是 R 代码,使用等效命令system()
对于蟒蛇):
#automatic document conversion to markdown and then to word
#first convert the ipython notebook paper.ipynb to markdown
system("jupyter nbconvert --to markdown paper.ipynb")
#next convert markdown to ms word
conversion <- paste0("pandoc -s paper.md -t docx -o paper.docx",
" --filter pandoc-citeproc",
" --bibliography="listb.bib",
" --csl="apa.csl")
system(conversion)
运行此单元格(或简单地运行所有单元格)。请注意,第二个系统调用很简单pandoc -s paper.md -t docx -o paper.docx --filter pandoc-citeproc --bibliography=listb.bib --csl=apa.csl
。我只是用过paste0()
能够将其分散在多行中并使其更易于阅读。
输出是一个word文档。如果您更喜欢其他文档, 查看本指南 http://pandoc.org/demos.html用于替代语法。
#Extras
-
如果您不喜欢转换后的文档包含文档转换的语法,请在代码单元格的上方和下方插入带有转换语法的 Markdown 单元格。在上面的单元格中,输入<!--
并在下面的单元格中输入-->
。这是用于注释的常规 HTML 命令,因此这两个单元格之间的语法将是已评估但未打印.
-
您还可以包括yaml 头在你的第一个单元格中。例如。,
---
title: This is a great title.
author: Author Name
abstract: This is a great abstract
---
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)