图片转 tex 代码之后,先做三件事再用

更新于

图片转 tex 代码 已经拿到结果之后,先不要直接塞进正在投稿的论文。本文只处理结果验收:在目标环境编译、对照原图逐行读、确认命令依赖。三件事各解决一个问题,分别是语法能否运行、内容是否一致,以及换到实际文稿后能否继续维护。

第一件事,在文稿副本里编译一条

先复制一份实际使用的文稿或测试工程,把新取得的公式单独放在清楚的位置。保留原来的模板与编译方式,暂时只增加这一条,便于区分既有工程问题和新内容的问题。若同时加入很多式子,日志中的错误就难以对应到某一张原图。

检查公式片段是否已经带外层数学环境,再决定放在哪里。已有环境内部不能再随意套一层相同定界;普通正文中也不能直接堆入需要数学模式的内容。文件名以 .tex 结尾只说明文件形态,不保证它本身是一份可以独立编译的完整文档。

开始编译后,从第一条有意义的错误看起。若提示分组未结束,检查对应行和前一行的花括号;若提示环境不匹配,找它的起止名称;若提示命令未定义,先记下准确命令,留到依赖检查。不要一次删除多段报错内容来换取通过,因为被删掉的可能正是分母或下标。

第二件事,把原图与排版结果逐行对应

编译成功之后,按原图顺序检查每一条。先确定行数和顺序,再比较等号左右,最后进入嵌套结构。多行推导尤其要注意续行的开头符号,有时只漏一个负号,整段推导的意义就不同了。

上下分层的结构块对比一行长条,把原图与排版结果逐行对应起来查

下面几种表现可以帮助定位:上下限出现在普通行高,检查它们是否附着在运算符后;分母只剩第一个字母,检查分母分组有没有包含后续项;括号大小失衡,检查可见括号是否成对及其覆盖范围。不要用增加空白把错位的内容拖到看似正确的位置。

还有一种难发现的错误是字符齐全却层级不同。比如下面两式都能编译,需要对照原图中加号的高度来判定。逐行读时可以先用语言描述关系,再查看排版结果是否表达同一意思,而不是只比两张图的宽度。

x^{a+b}\qquad x^a+b

课堂学生举手机记录几何板书

第三件事,确认依赖来自哪里

遇到未定义命令,先查拼写,排除识别把字母认错的情况;再看这个命令是否由文稿已有宏包提供;最后检查它是否属于原资料作者定义的简写。三个来源的处理不同,不能一看到错误就任意增加宏包。

如果是自定义简写,应理解其展开后的数学内容,必要时改写为目标工程已有的标准表达。若确实需要额外宏包,要在导言区核对相容性,并重新编译。不要把宏包加载命令直接插进公式里,也不要以某个网页预览正常作为模板已支持该命令的证据。

对于后续还要交给别人的源码,记录实际增加的依赖和公式所属位置。接收方换了一份模板时,这些信息能解释为何同一段公式在另一工程中报错。能够在自己的电脑上编译,是一次验证结果;结构清晰、依赖明确,才方便交付后继续使用。

一个词分成两条路,分别通向表格和数学结构,提醒弄清代码依赖的来源

修正过的结果应成为后续主文件

如果结果来自本站,可以在 LaTeX 模式中修正内容,再切回「可视化」导出源码;本站导出与图片识别均需登录及会员。公式预览用于检查片段,整篇文稿编译仍在你实际使用的工程中完成。两边发现的问题应回写到最终保留的那份源码,避免维护两份不一致的版本。

验收通过后,将原图、公式编号和修正文件对应存放。后续修改变量时从这份源码继续,不要再用未校对的识别原稿覆盖它。这样三件事做完之后,得到的不只是一段能显示的文字,而是一份内容已核实、可以接着编辑的公式材料。

延伸阅读

常见问题

编译报错时从哪一行查起?
先看编译日志中的第一条有效错误,再检查对应位置及前面的括号、环境边界。报错行可能只是发现问题的位置,缺失字符有时出现在前一行。
宏包依赖指的是什么?
某些命令或环境由额外宏包提供,文稿需要加载相应支持才能解释它们。还应区分模板自定义命令,不能把所有未定义命令都当成缺少宏包。