【问题标题】:Jupiter: nbconvert does convert HTML image to LaTexJupiter:nbconvert 确实将 HTML 图像转换为 LaTex
【发布时间】:2019-07-16 23:37:26
【问题描述】:

我喜欢使用 jupyter 笔记本来记录物理课程的主题,因此我让我的学生使用 CoCalc 和 Markdown 或 Jupyter 笔记本来编写他们的实验报告。我有问题。

例如,在 jupyter notebook 中,插入图像的 Markdown 方式是![Two slit](twoSlit1.png)。但是,您无法控制大小、位置和包装。 Stack Exchange [此处] 提供了许多有用的建议来控制 1 的大小。

但是,当我尝试将其转换为 pdf 时,如果使用 HTML 插入图像会丢失。例如

![Two slit](twoSlit1.png)

使用jupyter nbconvert Example.ipynb --to html 转换效果很好,但无法控制放置的图像大小。然后我可以将其打印为 pdf,但它没有很好的“文档”外观。但是

<img align="right" src="twoSlit1.png" width="200" />

使用jupyter nbconvert Example.ipynb --to pdf 转换后会提供 pdf 渲染,但图像丢失。我尝试了许多不同的 HTML 图像编码,但没有一个适用于 nbconvert --to pdf

CoCalc File -> Download as PDF via LaTex (.pdf)... 也确实会渲染图像。

如果我创建一个 Markdown 文档并使用 pandoc Example1.md -o Example1.pdf 创建一个 pdf 文件,我会在 CoCalc 上得到类似的结果。

顺便说一句,两者都完美地呈现了方程。

我在本地运行 jupyter 的 Mac 上也得到了相同的结果(Anaconda 发行版,python 3.7)

【问题讨论】:

    标签: python pdf jupyter-notebook nbconvert


    【解决方案1】:

    当我发布支持请求时,CoCalc 的 William Stein 和 Harald Schilly 得到了及时的答复。这是我的答案。

    1. 问题是 Markdown(可能还有 jupyter notebook Markdown 单元格)预览窗格是在前端呈现的,而不是在后端使用 pandoc,所以当我从终端使用 pandoc 时,我得到了不同的结果。

    2. 通过在 Markdown 文档的开头放置 HTML <style> 标签并将 CSS 代码放入 <style> 标签中,我可以获得看起来合理的 HTML。然后我把我的图像放在一个 HTML <div> 中,它使用 CSS 来设置它的大小,让它向右浮动,添加一个标题等。我还减小了标题字体的大小,将 font-family 设置为 serif 等等CSS 文件。然后预览看起来不错,但是当我打印预览并将其保存为pdf时仍然存在问题。所以:

    3. 只需使用 Markdown 并使用 HTML 来做一些事情:a) <div class="center"> 将标题、作者... b) <blockquote> 设置摘要样式。 c) <div class=figure width="280px"> 插入浮动数字。

    4. 创建一个文件 style.css 并使用从命令行运行 pandoc

      pandoc Example.md -s --css="style.css" --mathjax -o Example.html
      
    5. 在 CoCalc 中打开 Example.html 并使用渲染窗格中的打印图标并保存 pdf 文件。

    我很满意。学生无需使用 LaTeX 和最少的 HTML 就可以获得体面的报告。我给他们 CSS 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-23
      • 1970-01-01
      • 2011-06-02
      • 2010-10-14
      • 1970-01-01
      • 2020-12-21
      • 1970-01-01
      相关资源
      最近更新 更多