使用nbconvert将jupyter notebook转换为pdf时出现'Missing $ inserted'错误消息

时间:2018-05-01 18:28:01

标签: latex jupyter-notebook nbconvert

尝试使用以下命令将jupyter笔记本转换为pdf时:

<%= link_to remove_document_path(document), :method => :put do %>
  <span class="fa fa-trash text-danger"></span>
<% end %>

我收到一条错误消息:

jupyter nbconvert --to pdf "Search and Other Content Finding Features.ipynb"

我找到了一些关于here的讨论。

但是,我在代码中找不到这些字符。还有其他原因吗?

3 个答案:

答案 0 :(得分:1)

对我来说,这是LaTeX和MathJax之间的显着差异引起的。例如,可以使用MathJax在数学模式之外渲染cases环境,这是jupyter笔记本电脑的默认选择。但是,这会导致错误,指出在LaTeX中“缺少$插入”。更正Markdown单元中的语法后,错误消息消失了。

答案 1 :(得分:0)

这种情况下的问题似乎是由我的笔记本文件名引起的。我不完全理解导致问题的原因,但上面的错误消息包含对某些文字的引用:

... Other Content Finding Features_10_0.png}

该文字包含可导致此错误的_。我认为发生的事情是转换脚本中的某个地方,如果文件名中有空格,则生成带有下划线的文件,如图所示,然后触发错误。 (这似乎有点像我的错误,或者至少是一个弱点)。

对我有用的修复只是改变jupyter笔记本的文件名,不包括任何空格。然后转换顺利进行。

答案 2 :(得分:0)

对我来说,这是另一个尽管相关的问题:强调。我认为原因是标记为“原始文本”的单元格中的文本将直接传递到LaTeX,在这里它可以解释为LaTeX代码本身。也许是图形名称中的下划线?

  • 在某个时候,我有一个带有三个下划线___的原始单元格,它们随后使转换中断。临时的解决方案是将单元格转换为降价,而不是原始(而不是运行它)以显示在pdf中。

要查找错误,我使用了以下转换(taken from this answer)

jupyter nbconvert thenotebook.ipynb --to latex
  • 另一个相关的错误是由包含下划线的链接引起的:
[text](https://en.wikipedia.org/wiki/Python_(programming_language))

这也位于Raw Text单元格中,我将其转换为markdown以生成pdf。格式(颜色,链接)不同。

  • 最后一点:我的文件名也包含空格,但这根本不是问题!