如何将Jupyter笔记本转换为学术论文格式?

Jas*_*son 5 jupyter-notebook nbconvert

我有一个Jupyter笔记本,其中包含我想写在学术论文中的所有内容(文本,方程式和图表),以及我想隐藏的代码。

有没有一种方法可以通过编程方式将笔记本转换为日记本可以接受的格式?理想情况下,我希望使用诸如之类knitr的功能来创建学术风格的论文,但要使用Jupyter而非专注于R的工具。

我已经找到了几本期刊的pandoc模板(包括我想提交的期刊),但是尚不清楚它与Jupyter的集成程度如何。

我还发现在本文写作过程中使用Jupyter笔记本电脑的说明,但作者似乎只是使用它进行数据分析,并生成曲线; 它也可能是标准脚本。

如果还不存在,那么为该任务制造可重用的工具将需要什么?将一个nbconvert自定义的出口是足够的,或者我需要为了从笔记本的接口中指定书目和剧情/表位置全Jupyter延期?

BND*_*BND 5

将您的笔记本转换为 Markdown,然后使用 pandoc 和过滤器(pandoc crossref 和 pandoc citeproc)转换为 Word。

您需要标题、章节、交叉引用、引文、编号、图表和带有标题的表格……这是一个有效的工作流程:您可以首先将您的笔记本转换为 Markdown,这可以使用 nbconvert 轻松完成:

jupyter nbconvert --to markdown --no-prompt your_notebook.ipynb
Run Code Online (Sandbox Code Playgroud)

--no-prompt:如果您不想要手稿,将有助于摆脱代码单元。您还可以在最终输出中不需要的降价单元中使用隐藏单元格。然后你需要 pandoc 和两个过滤器 pandoc-crossref 和 pandoc-citeproc。我正在使用 windows 和 anaconda 3 来安装它们:

https://anaconda.org/conda-forge/pandoc

https://anaconda.org/conda-forge/pandoc-crossref

幸运的是,通过 anaconda 安装 pandoc 也会带来 pandoc-citeproc。您需要一个与 pandoc 版本(当前为 pandoc 2.5 )兼容的 pandoc-crossref。因此,从 conda 安装时,您可以使用:

conda install -c conda-forge pandoc=2.5
Run Code Online (Sandbox Code Playgroud)

那么你可以简单地运行:

conda install -c conda-forge pandoc-crossref
Run Code Online (Sandbox Code Playgroud)

关键是降价语法。你必须使用 Markdown 语法编写你的笔记本,这在 Jupiter 笔记本中是默认的。有趣的例子在这里这里这里也:)。您还需要一个 .bib 格式的参考文件来管理您的引文。然后只需运行以下命令:

pandoc -s your_notebook.md -o your_notebook.pdf -F pandoc-crossref -F pandoc-citeproc --bibliography=your_references.bib -f markdown 
Run Code Online (Sandbox Code Playgroud)

你可以把你的整个笔记本变成漂亮、干净的手稿

pandoc 有许多其他自定义选项:颜色链接、纸张大小、几何、数字部分……(请参阅 pandoc –帮助)

因此,编写一个自定义的 Jupiter 导出器,您可以组合这两个命令并将您的笔记本导出为手稿。

另一个有趣的方法https://github.com/chrisjsewell/ipypublish