我有一个Jupyter笔记本,其中包含我想写在学术论文中的所有内容(文本,方程式和图表),以及我想隐藏的代码。
有没有一种方法可以通过编程方式将笔记本转换为日记本可以接受的形式?理想情况下,我希望使用 knitr
's functionality之类的东西来创建学术风格的论文,但要使用Jupyter而不是R型工具。
我已经为几本期刊(包括我想提交的期刊)找到了 pandoc
templates,但尚不清楚它与Jupyter的集成程度如何。
我还发现this是在书写过程中使用Jupyter笔记本的描述,但作者似乎只是将其用于数据分析和生成图。它也可能是标准脚本。
如果还不存在,那么为该任务提供可重用的工具将需要什么? nbconvert
自定义导出程序是否足够,或者我需要完整的Jupyter扩展名以便在笔记本界面内指定书目和绘图/表格位置?
最佳答案
将您的笔记本转换为markdown,然后将pandoc与过滤器(pandoc crossref和pandoc citeproc)一起使用,以转换为Word。
您需要标题,部分,交叉引用,引文,编号,图形和带有字幕的表格…
这是一个有效的工作流程:
您可以首先将笔记本转换为markdown,可以使用nbconvert轻松完成:
jupyter nbconvert --to markdown --no-prompt your_notebook.ipynb
--no-prompt:如果您不想在手稿中使用,将有助于删除代码单元。您也可以在最终输出中不需要的markdown单元中使用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版本(当前为pandoc 2.5)兼容的pandoc-crossref。
因此,从conda安装时,可以使用:
conda install -c conda-forge pandoc=2.5
那么您可以简单地运行:
conda install -c conda-forge pandoc-crossref
总的来说,关键将是 Markdown 语法。您必须使用markdown语法编写笔记本,这在Jupiter笔记本中仍然是默认设置。有趣的示例是here,here和here also :)。
您还需要一个.bib格式的引用文件来管理引文。
然后只需运行以下命令:
pandoc -s your_notebook.md -o your_notebook.pdf -F pandoc-crossref -F pandoc-citeproc --bibliography=your_references.bib -f markdown
您可以将整个笔记本变成漂亮,干净的手稿😊
pandoc还有许多其他自定义选项:颜色链接,纸张尺寸,几何形状,数字部分…(请参阅pandoc –help)
因此,编写自定义Jupiter导出器可以将这两个命令结合起来,并将笔记本作为手稿导出。
另一个有趣的方法https://github.com/chrisjsewell/ipypublish
关于jupyter-notebook - 如何将Jupyter笔记本转换为学术论文格式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49371469/