Mathpix

识别公式导入Overleaf:代码放进tex文件前的4项检查

更新于

识别公式导入Overleaf,最常见的失败不是识别错,而是代码到了 tex 文件里缺东西:导言区少了宏包、环境放错了位置、没包定界符、编号方式不对。把识别出的 LaTeX 粘进 Overleaf 项目之前,按宏包、环境、定界符、编号这 4 项查一遍,大部分编译报错就不会出现。本站与 Overleaf 无关联,下文讲的是通用的 LaTeX 规则,Overleaf 的界面以其当前版本为准。

从截图到一段可粘贴的代码

输入来源通常是论文或教材截图。在本站公式编辑页点「识别」→「图片识别」,弹窗开着时粘贴截图,识别直接开始;上传的图片文件要点「开始识别」。识别要登录并开通本站会员。

拿识别弹窗里「识别样例」的分段函数举例,那是线上识别服务对样例原图的原样输出:

f(x)=\begin{cases}x^{2},&x\geq0\\-x,&x<0\end{cases}

对照原图确认无误后,切回「可视化」模式,点「导出」→「导出 LaTeX (.tex)」下载(导出要登录并开通本站会员)。导出的文件只有公式本身,不含导言区和定界符,这正是下面 4 项检查要补的。

检查一:宏包

识别结果里的命令很多不属于 LaTeX 内核。上面这条的 cases 环境来自 amsmath,导言区没有它,编译报的是:

! Misplaced alignment tab character &.

报错行号指向 cases 所在那一行。这条报错不提宏包,只说 & 放错了地方,新手最容易绕远路。

导言区缺 amsmath 时分段函数编译报错的问题面板

常见对应关系:cases、aligned、pmatrix、\text、\operatorname、\boldsymbol 要 amsmath;\mathbb 要 amssymb;\bm 要 bm。缺了后几个,报的多是 Undefined control sequence。

检查二至四:环境、定界符、编号

环境放的位置。

  • aligned、cases、pmatrix 只能在数学模式里。aligned 单独放在正文报 \begin{aligned} allowed only in math mode,cases、pmatrix 报 Missing $ inserted。
  • align 自己就是独立公式环境,不能再套进 \[…\],否则报 Erroneous nesting of equation structures。
  • 识别结果如果是 aligned 多行,放进 \[…\] 或 equation 里即可。

定界符。 识别和导出的源码都不带定界符。夹在句中的公式包 $…$ 或 \(…\),单独成行的用 \[…\];从 Markdown 笔记里搬来的 $$…$$ 顺手换掉。漏包定界符时,\geq 这类命令会报 Missing $ inserted。

编号。 要编号用 equation,不要编号用 \[…\] 或 equation*(后者也要 amsmath)。想在正文里引用,在公式里加 \label{eq:piecewise},正文写 \ref{eq:piecewise};原图里自带的「(3.2)」这类编号不要照抄进公式,交给 LaTeX 自动编。

识别代码放进 tex 文件前的四项检查顺序

补上 amsmath 后分段函数编号编译成功

放进去之后核对三处

  1. 编译通过且没有警告:尤其留意引用显示成问号,那是 label 与 ref 没对上。
  2. 排版和原图一致:分段函数左边的大括号、两行条件都在,⩾ 与 ≥ 这类写法差异按全文统一。
  3. 全文风格统一:同一篇里粗体、正体 d、不等号的写法前后一致,别一处识别一个样。

四条常见编译报错与对应原因对照表

想先在本站把整篇编一遍,可以用编辑页的「LaTeX 论文」标签(会员功能,只支持电脑端),报错会定位到文件与行。整理论文公式的其它环节,可参考截图公式转 TeX代码与LaTeX分式括号检查。

这 4 项里,宏包那一项最省事也最常漏:新建项目时先把 amsmath、amssymb 两行写进导言区,后面识别来的公式大多能直接落位。

延伸阅读

常见问题

要额外加宏包吗?
多数时候要。识别结果常用分段函数、矩阵、粗体希腊字母、黑板粗体这些写法,它们分别来自 amsmath、amssymb 和 bm。最稳的做法是在导言区先放 amsmath 和 amssymb 两行,用到 bm 再补;编译报未定义命令时,按报错那一行的命令查它属于哪个宏包。