如何处理 Ipython Notebook 中的引用?

2024-05-03

在 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 之外,您还需要:

  1. LaTeX (安装指南 http://sachaepskamp.com/LaTeX2015).

  2. Pandoc (安装指南 http://pandoc.org/installing.html).

  3. A 引文风格语言。下载引文样式,例如,APA https://github.com/citation-style-language/styles/blob/master/apa.csl。保存.csl文件(例如,apa.csl)到与你的jupyter笔记本相同的文件夹(或指定路径.csl稍后归档)。

  4. A .bib file和你的参考资料。我正在使用一个示例围脖文件 http://shelah.logic.at/listb.bib list.bib。保存到与您的 jupyter 笔记本相同的文件夹(或指定.bib稍后归档)。

完成这些步骤后,剩下的就很简单了:

  1. 使用 Markdown 语法在 Jupyter Notebook 的 Markdown 单元格中进行引用。例如。,[@Sh:1]其中语法的工作方式如下:([@citationkey_in_bib_file])。与其他解决方案相比,我更喜欢这种语法,因为它的输入速度非常快[@something].

  2. 在 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

  1. 如果您不喜欢转换后的文档包含文档转换的语法,请在代码单元格的上方和下方插入带有转换语法的 Markdown 单元格。在上面的单元格中,输入<!--并在下面的单元格中输入-->。这是用于注释的常规 HTML 命令,因此这两个单元格之间的语法将是已评估但未打印.

  2. 您还可以包括yaml 头在你的第一个单元格中。例如。,

     ---
     title: This is a great title. 
     author: Author Name
     abstract: This is a great abstract
     ---
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理 Ipython Notebook 中的引用? 的相关文章

随机推荐

  • 使用R中的XLSX包在Excel中打印data.frame时出错

    数据框是可见的 没有任何错误 但是 当使用 XLSX 包的 write xlsx 函数打印相同内容时 会出现错误 Error in jcall cell V setCellValue value method setCellValue wi
  • DragTarget onWillAccept 和 onAccept 未触发

    我从 Flutter 开始 无法使用拖放功能 我遵循了文档 但不知道我做错了什么 此示例应用程序显示三个正方形 蓝色是可拖动的 其他的都设置了 DragTarget 一个在方块内 一个在方块外 当我拖动蓝色方块时 它会打印拖动开始的信息 但
  • Z3统计中内存使用量的单位是什么?

    z3 统计中测量内存使用情况的单位是什么 是MB还是KB 记忆到底意味着什么 是执行期间的最大内存使用量还是所有分配的总和 它是执行期间最大堆大小的近似值 并通过 cmd context cpp 中的以下函数将其添加到统计对象中 void
  • 调度队列:如何判断它们是否正在运行以及如何停止它们

    我只是在玩 GCD 并且编写了一个 CoinFlipper 玩具应用程序 抛硬币的方法如下 void flipCoins NSUInteger nFlips Create the queues for work dispatch queue
  • flash/flex:渐进式下载与 rtmp

    我试图理解并真正确定何时在 Flex flash 中使用渐进式下载与 rtmp 看来主要的一点是 rtmp 不与 http 一起提供服务 而渐进式下载则由 http 提供 由于它不是 rtmp 因此资源受到保护 因为无法从 swf 外部连接
  • 如何检查数据行中是否存在具有给定名称的列

    我想从数据行中的循环插入一个值 因此在数据行中输入值之前 我想检查表中是否存在特定列名称 请告诉我如何检查 首选 vb net 我得到了答案 并且它正在工作 它是 If dr Table Columns Contains columnnam
  • 未提供 Bouncycastle 加密算法

    我正在尝试将 BouncyCastle 与 android 一起使用来实现 ECDH 和 EL Gamal 我添加了 bouncycastle jar 文件 bcprov jdk16 144 jar 并编写了一些适用于我的计算机 jvm 的
  • gluPerspective 与 gluOrtho2D

    我查看了 MSDN 上关于这两个函数的文档 但是 我不太明白这两个功能之间的区别 一个是用于设置 3D 相机视图 另一个是用于设置 2D 相机视图 如果能得到解答就太好了 预先感谢您的评论 正交投影基本上是没有透视的 3D 投影 本质上 这
  • Jenkins 管道中的导出命令

    如何在 Jenkins 管道中添加 导出 unix 命令 我里面有一个詹金斯 舞台 和 步骤 导出命令的语法是什么 我需要使用导出命令设置环境变量 PATH 您可以更新 PATH像这样 pipeline agent label docker
  • 使用perl求中位数、众数、标准差?

    我有一个数字数组 计算数据集的中位数 众数和标准差的最简单方法是什么 Statistics Basic Mean http p3rl org Statistics Basic Mean Statistics Basic Median htt
  • MySQL 索引创建速度很慢(在 EC2 上)

    我有一张相当简单的桌子 requestparams requestid varchar 64 NOT NULL requestString text ENGINE MyISAM 使用 LOAD DATA 填充表后 我正在更改架构并将 req
  • 如何安排函数在 Qt for Python 的主 UI 线程上运行?

    我正在移植一个 Python GTK 应用程序 因此它使用 Qt for Python PySide2 它使用Python标准实现工作线程threading模块和工作线程使用Gdk threads add idle 与主 GUI 线程交互
  • Jetty9 - Jetty 不是从单独的 {jetty.base} 运行

    在启动 jetty9 服务器作为服务时 我看到以下警告 我对此一无所知 警告 oejs HomeBaseWarning main Jetty 的此实例不是从单独的 jetty base 目录运行 不建议这样做 请参阅文档 http www
  • Case 表达式在 SQL 查询中无法正常工作

    我想连接列supplier使用逗号分隔符创建表并将其放入名为 contact 的别名字段中 我使用过检查空值的案例 假设如果contact number2则为空contact number3将在别名字段中 反之亦然 这是我的查询 SELEC
  • 如何将html设置为extjs中的元素

    1 如何设置HTML到已经创建的面板或任何其他元素 我是初学者 我尝试了下面的方法来设置 HTML 中的一些内容 var clickedElement Ext getCmp id el child gt clickedElement set
  • “排序文件名 | uniq”不适用于大文件

    我可以从小文本文件中删除重复条目 但不能从大文本文件中删除重复条目 我有一个 4MB 的文件 文件的开头如下所示 aa aah aahed aahed aahing aahing aahs aahs aal aalii aalii aali
  • 可扩展性和弹性有什么区别?

    我听说很多人交替使用这两个术语 但在我看来 它们之间还是有区别的 可扩展性 的能力软件系统在其当前硬件资源上处理更大的工作负载 scale up 或当前和额外的硬件资源 向外扩展 应用程序服务不中断 弹性 的能力硬件层下面 通常是云基础设施
  • 在命令行上编译 C++/CX

    我收到链接器错误fatal error C1107 could not find assembly platform winmd please specify the assembly search path using AI or by
  • 尝试构建我的 CUDA 程序时出现错误 MSB4062

    当我尝试构建我的第一个 GPU 程序时 出现以下错误 有什么建议可能会出什么问题吗 错误 1 错误 MSB4062 Nvda Build CudaTasks SanitizePaths 任务 无法从程序集 C Program 加载 文件 M
  • 如何处理 Ipython Notebook 中的引用?

    在 Ipython Notebook 中处理引用的最佳方法是什么 理想情况下 我想要一个 bibtex 文件 然后像在 Latex 中一样 在 Ipython markdown 单元格中拥有一个速记列表 并在笔记本末尾提供完整的参考文献 我