Printing 打印iPython笔记本的最佳方式

Printing 打印iPython笔记本的最佳方式,printing,jupyter-notebook,ipython-notebook,pdflatex,Printing,Jupyter Notebook,Ipython Notebook,Pdflatex,打印iPython笔记本(.ipynb)的最佳方式是什么?该笔记本包含大量的数字/绘图、照片和代码,这些内容将通过水平滚动条显示?我曾尝试将它们转换为HTML、幻灯片、PDF等,但都没有产生令人满意的输出。例如,幻灯片具有超大字体/缩放,因此一页中的文本不超过5行。我尝试过GitPrint,但这只适用于markdown(md)文件。我曾尝试将ipynb转换为tex,并使用pdflatex转换为PDF,但有很多错误,我一直被问号提示所困扰(?)。当我通过它们按enter键时,输出不包含照片。那么,

打印iPython笔记本(
.ipynb
)的最佳方式是什么?该笔记本包含大量的数字/绘图、照片和代码,这些内容将通过水平滚动条显示?我曾尝试将它们转换为HTML、幻灯片、PDF等,但都没有产生令人满意的输出。例如,幻灯片具有超大字体/缩放,因此一页中的文本不超过5行。我尝试过GitPrint,但这只适用于markdown(
md
)文件。我曾尝试将
ipynb
转换为
tex
,并使用
pdflatex
转换为PDF,但有很多错误,我一直被问号提示所困扰(
)。当我通过它们按enter键时,输出不包含照片。那么,在这里最好的方式是什么?我不在乎扩展名,只在乎它在纸上看起来不错(像
ipynb

你可以使用
nbconvert
将ipynb文件转换成HTML,问题是:如何漂亮地打印HTML文件?与打印ipynb文件相比,打印HTML文件要容易得多

命令如下:

jupyter nbconvert --to html filename.ipynb

我想我已经找到了一个像样的解决办法,因为我也遇到了同样的问题。为了使Jupyter笔记本(.pdf格式)具有美观的打印效果,用于学习和学习(作为课堂幻灯片),我建议使用您的web浏览器(Chrome:print=Ctrl+P)进行打印

结果:一份美观的文档,包含嵌入Jupyter笔记本中的所有代码、图片


tl:dr避免在Jupyter笔记本选项中进行任何转换;直接从web浏览器打印。

最简单和灵活的方法是使用CSS。 例如,将以下代码放入单元格并运行。我将删除所有代码块和输出块。这样你就可以控制你想要的东西

%%html
 <style>
 div.input {
      display: none;
      padding: 0;
    }

    div.output_prompt {
      display: none;
      padding: 0;
    }

    div.text_cell_render {
      padding: 1pt;
    }

    div#notebook p,
    div#notebook,
    div#notebook li,
    p {
      font-size: 11pt;
      line-height: 135%;
      margin: 0;
    }

    .rendered_html h1,
    .rendered_html h1:first-child {
      font-size: 16pt;
      margin: 7pt 0;
    }

    .rendered_html h2,
    .rendered_html h2:first-child {
      font-size: 14pt;
      margin: 6pt 0;
    }

    .rendered_html h3,
    .rendered_html h3:first-child {
      font-size: 13pt;
      margin: 6pt 0;
    }

    div.output_subarea {
      padding: 0;
    }
 </syle>
%%%html
分区输入{
显示:无;
填充:0;
}
div.output\u提示符{
显示:无;
填充:0;
}
div.text\u单元格\u渲染{
填料:1吨;
}
分区#笔记本电脑p,
div#笔记本,
李小龙,
p{
字号:11pt;
线高:135%;
保证金:0;
}
.html h1,
.html h1:第一个孩子{
字号:16pt;
利润率:7分0;
}
.html h2,
.html h2:第一个孩子{
字号:14pt;
利润率:6分0;
}
.html h3,
.html h3:第一个孩子{
字号:13pt;
利润率:6分0;
}
分区输出分区{
填充:0;
}

直接打印chrome页面不是一个体面的解决方案。由于它的格式不适合于正确的页面布局,因此在JupyterLab(1.2)中无法正常工作,但在经典笔记本中可以正常工作。在JupyterLab中选择帮助->启动经典笔记本,然后从浏览器菜单(例如3点菜单)选择打印并打印为pdf。这将使用适当的页边距分页。