如何将 Jupyter Notebook 转换为学术论文格式?
How to Convert a Jupyter Notebook to an Academic Paper Format?
我有一个 Jupyter 笔记本,其中包含我想放入学术论文中的所有内容(文本、方程式和图表),以及我想隐藏的代码。
有没有办法以编程方式将笔记本转换为期刊提交可接受的形式?理想情况下,我想要像 knitr
's functionality 这样的东西来创建学术风格的论文,但对于 Jupyter 而不是专注于 R 的工具。
我已经找到 pandoc
templates 几个期刊(包括我想投稿的那个),但不清楚它与 Jupyter 的集成程度如何。
我也找到了this关于在论文写作过程中使用Jupyter notebooks的描述,但作者似乎只是简单地用它来进行数据分析和绘图;它也可能是一个标准脚本。
如果这还不存在,那么为这个任务制作一个可重复使用的工具需要什么? nbconvert
自定义导出器是否足够,或者我是否需要完整的 Jupyter 扩展才能在笔记本界面中指定参考书目和 plot/table 位置?
将您的笔记本转换为 markdown,然后使用带过滤器的 pandoc(pandoc crossref 和 pandoc citeproc)转换为 Word。
您需要标题、章节、cross-referencing、引文、编号、带字幕的图表……
这是一个有效的工作流程:
您可以先将笔记本转换为 markdown,这可以使用 nbconvert 轻松完成:
jupyter nbconvert --to markdown --no-prompt your_notebook.ipynb
--no-prompt:如果你不想在手稿中使用代码单元,将有助于去除代码单元。您还可以在最终输出中不需要的降价单元格中使用 hidden cells 。
然后你需要 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-crossref 与 pandoc 版本(当前为 pandoc 2.5 )兼容。
所以,当从 conda 安装时,你可以使用:
conda install -c conda-forge pandoc=2.5
那么你可以简单地 运行:
conda install -c conda-forge pandoc-crossref
最关键的是 markdown 语法。你必须使用 Markdown 语法编写你的笔记本,这在 Jupiter 笔记本中是默认的。有趣的例子是 here, here and here also :) 。
您还需要一个 .bib 格式的参考文件来管理您的引文。
然后通过简单地 运行ning 命令:
pandoc -s your_notebook.md -o your_notebook.pdf -F pandoc-crossref -F pandoc-citeproc --bibliography=your_references.bib -f markdown
你可以把你的整个笔记本变成漂亮干净的手稿
pandoc 还有许多其他自定义选项:colorlinks、papersize、geometry、number-sections…(参见 pandoc –help)
因此编写一个自定义 Jupiter 导出程序,您可以将这两个命令结合起来并将您的笔记本导出为手稿。
我有一个 Jupyter 笔记本,其中包含我想放入学术论文中的所有内容(文本、方程式和图表),以及我想隐藏的代码。
有没有办法以编程方式将笔记本转换为期刊提交可接受的形式?理想情况下,我想要像 knitr
's functionality 这样的东西来创建学术风格的论文,但对于 Jupyter 而不是专注于 R 的工具。
我已经找到 pandoc
templates 几个期刊(包括我想投稿的那个),但不清楚它与 Jupyter 的集成程度如何。
我也找到了this关于在论文写作过程中使用Jupyter notebooks的描述,但作者似乎只是简单地用它来进行数据分析和绘图;它也可能是一个标准脚本。
如果这还不存在,那么为这个任务制作一个可重复使用的工具需要什么? nbconvert
自定义导出器是否足够,或者我是否需要完整的 Jupyter 扩展才能在笔记本界面中指定参考书目和 plot/table 位置?
将您的笔记本转换为 markdown,然后使用带过滤器的 pandoc(pandoc crossref 和 pandoc citeproc)转换为 Word。
您需要标题、章节、cross-referencing、引文、编号、带字幕的图表…… 这是一个有效的工作流程: 您可以先将笔记本转换为 markdown,这可以使用 nbconvert 轻松完成:
jupyter nbconvert --to markdown --no-prompt your_notebook.ipynb
--no-prompt:如果你不想在手稿中使用代码单元,将有助于去除代码单元。您还可以在最终输出中不需要的降价单元格中使用 hidden cells 。 然后你需要 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-crossref 与 pandoc 版本(当前为 pandoc 2.5 )兼容。 所以,当从 conda 安装时,你可以使用:
conda install -c conda-forge pandoc=2.5
那么你可以简单地 运行:
conda install -c conda-forge pandoc-crossref
最关键的是 markdown 语法。你必须使用 Markdown 语法编写你的笔记本,这在 Jupiter 笔记本中是默认的。有趣的例子是 here, here and here also :) 。 您还需要一个 .bib 格式的参考文件来管理您的引文。 然后通过简单地 运行ning 命令:
pandoc -s your_notebook.md -o your_notebook.pdf -F pandoc-crossref -F pandoc-citeproc --bibliography=your_references.bib -f markdown
你可以把你的整个笔记本变成漂亮干净的手稿
pandoc 还有许多其他自定义选项:colorlinks、papersize、geometry、number-sections…(参见 pandoc –help)
因此编写一个自定义 Jupiter 导出程序,您可以将这两个命令结合起来并将您的笔记本导出为手稿。