我的博客

分享技术与思想的点滴

docling输出数学PDF到MD的用法,附极致保真

docling 48.pdf --to latex --output 数学论文.tex
pandoc 数学论文.tex -o 数学论文.md --mathjax
docling 48.pdf --to html --output 48.html

上面两组命令出来的有啥区别?

这是个很专业的问题,两组命令的最终产物虽然都是 Markdown 文件,但中间处理过程和公式的保真度完全不一样

核心区别在于:是直接出 MD,还是通过 LaTeX 作为桥梁绕一圈。

下面我详细拆解:

第一组:两步走(先 LaTeX 再 Pandoc)

docling 48.pdf --to latex --output 数学论文.tex
pandoc 数学论文.tex -o 数学论文.md --mathjax
  • 第一步(Docling):把 PDF 还原成 LaTeX 源代码

    • 这一步最关键的成果是:它把 PDF 里的公式(无论是行内还是独行)原封不动地转成了 \frac{1}{2} 这样的 LaTeX 命令
    • 此时生成的 .tex 文件,是排版级的源码,公式的精确度最高。
  • 第二步(Pandoc):把 LaTeX 源码 翻译成 Markdown

    • Pandoc 看到 \frac{1}{2},会根据 --mathjax 参数,把它变成 MD 能识别的格式:$$\frac{1}{2}$$

结果特征:

  • 公式形式:标准 LaTeX 格式(例如 $$E=mc^2$$)。
  • 兼容性最好。能被 Typora、Obsidian、GitHub、Notion 完美渲染。
  • 缺点:步骤繁琐,依赖 Pandoc。

第二组:一步到位(Docling 直接出 MD)

docling 48.pdf --to markdown --output 48.md
  • 过程:Docling 内部把 PDF 解析成结构树,然后直接套用 Markdown 模板输出。
  • 公式处理:这里容易出现分歧。Docling 可能会做两件事之一(取决于版本):
    1. 理想情况:把公式也转成 $$...$$ LaTeX 格式。
    2. 糟糕情况:把公式转成 Unicode 字符 或者 MathML 代码块

结果特征:

  • 公式形式:可能是 $$E=mc^2$$(好),也可能是 𝐸=𝑚𝑐²(坏,数学符号排版丑陋)。
  • 兼容性不稳定。如果是 Unicode,在很多笔记软件里无法编辑、无法对齐、无法进行复杂排版
  • 优点简单、快速,一条命令出结果。

总结对照表(针对你这篇 48.pdf)

对比维度 第一组(Docling -> LaTeX -> Pandoc) 第二组(Docling -> MD)
公式精度 极高(保留了 LaTeX 语义) 一般(可能降级为 Unicode 符号)
可编辑性 (想改公式直接改代码) (Unicode 字符难改)
复杂结构 支持矩阵、大括号、对齐环境 容易乱,多行公式大概率错位
推荐场景 理工科论文、教材、带大量公式的文档 文科文献、只有零星简单公式的新闻稿

实战建议

对于你那篇医学统计论文 48.pdf(如果里面有很多 \chi^2 检验、P < 0.05、表格):

  • 如果为了精准阅读/存档用第一组。虽然麻烦点,但公式能看能改。
  • 如果只是为了喂给大模型 AI 做总结用第二组。AI 读 Unicode 公式(如 χ²)和读 LaTeX 代码(\chi^2理解能力差不多,没必要多此一举。

想要极致保真? 如果你对数学公式排版有执念,可以试试这个终极命令(将 PDF 直接转成能渲染公式的 HTML):

docling 48.pdf --to html --output 48.html

然后用浏览器打开 48.html,公式完美显示。