10

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

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

我收到一条错误消息:

! Missing $ inserted.
<inserted text>
                $
l.380 ... Other Content Finding Features_10_0.png}

?
! Emergency stop.
<inserted text>
                $
l.380 ... Other Content Finding Features_10_0.png}

我发现了一些关于这里是什么的讨论。

但是,我在我的代码中找不到这些字符。会不会有别的原因?

4

3 回答 3

4

对我来说,这是另一个相关的问题:下划线。我认为原因是标记为原始文本的单元格中的文本将直接传递给 LaTeX,在那里它可以被解释为 LaTeX 代码本身。也许你人物名字中的下划线?

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

为了找到错误,我使用了以下转换(取自这个答案)

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

这也在原始文本单元格中,我将其转换为降价以生成 pdf。但是,格式(颜色、链接)是不同的。

  • 最后一点:我的文件名也包含空格,但这根本不是问题!
于 2019-01-24T14:40:38.760 回答
1

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

... Other Content Finding Features_10_0.png}.

该文本包括_可能导致此错误的内容。我认为在转换脚本中的某处,如果文件名中有空格,则会生成一个带有下划线的文件,如图所示,然后触发错误。(这对我来说似乎有点像一个错误,或者至少是一个弱点)。

对我有用的修复只是更改 jupyter notebook 的文件名不包含任何空格。然后转换顺利进行。

于 2018-05-01T19:32:49.560 回答
1

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

于 2019-11-25T03:56:37.200 回答