【问题标题】:'Missing $ inserted' error message when converting jupyter notebook to pdf with nbconvert使用 nbconvert 将 jupyter notebook 转换为 pdf 时出现“缺少 $ 插入”错误消息
【发布时间】:2018-10-11 19:21:40
【问题描述】:

尝试使用以下命令将 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}

我发现了一些关于here 的讨论。

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

【问题讨论】:

    标签: latex jupyter-notebook nbconvert


    【解决方案1】:

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

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

    为了找到错误,我使用了以下转换(taken from this answer):

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

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

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

    【讨论】:

      【解决方案2】:

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

      ... Other Content Finding Features_10_0.png}

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

      对我有用的解决方法是更改​​ jupyter 笔记本的文件名,使其不包含任何空格。然后转换顺利进行。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2020-09-24
          • 2019-11-23
          • 2018-04-25
          • 2019-03-05
          • 1970-01-01
          • 2019-02-13
          • 2019-08-27
          • 1970-01-01
          • 2018-01-27
          相关资源
          最近更新 更多