LaTeX 公式引用出现 ?? 的原因与 label 的放置位置
更新于
LaTeX 公式引用出现两个问号时,问题通常不是公式本身显示失败,而是文档没有找到可用的标签编号。先保留完整工程,查看报错或警告,再按编译更新、标签名称、标签位置和编号环境逐项核对。把单条公式复制到在线预览,不能替代这些需要整篇上下文的检查。
先让引用信息完成更新
完整文档的引用需要记录标签及其对应号码,修改标签或插入公式后,常常需要再次编译才能使用更新后的信息。第一次看到未定义引用提示时,先确认当前编译是否完整结束,再运行后续编译,观察提示是否消失。若前面已有错误导致过程停止,应先修复那个错误。
不能把“再编译一次”当作所有问号的解决方法。连续编译后仍然提示找不到同一个标签,继续检查名称与目标环境;只重复操作不会产生一个根本不存在的标签。保留提示中的标签名,用它与源码逐字对照,比从视觉上猜哪条公式相关更直接。
如果工程拆成多个文件,确认定义标签的章节确实参与当前编译。只编译局部章节时,另一个文件中的标签可能不在这次上下文中。先在完整稿件里复现,再判断是否属于局部构建方式造成的差异,不必把正确公式重新录入。
名称要完全相同,位置要关联到公式
标签写成 \label{eq:energy},引用就应使用相同的 eq:energy,包括大小写和标点。常见误差是标签中用了连字符,引用却写成下划线,或改了名称只改一端。给标签起稳定、能说明用途的名字,比直接按当前可见号码命名更能经受增删。

label 通常放在 equation 这样的编号环境内部,让它关联当前公式产生的号码。放在环境结束之后,可能得到其他位置的编号;结果不一定是问号,也可能是一个看似正常却错误的数字。因此除了消除未定义提示,还要检查引用到的号码是否真属于目标式子。
在多行编号环境中,标签应放在需要引用的那一行,并注意与分行记号的位置关系。不要把一个标签随复制带到多行,重复标签会使文档关系不明确。调整后重新编译,核对正文引用实际指向的数学内容,而非只数数字是否连续。

不编号环境没有普通自动编号可供连接
如果目标采用了不编号的环境,或该行被取消编号,应先确认你是否还需要在正文指向它。只加 label 不一定会为它创建期望的公式号码。需要可引用编号时,采用适当的编号环境;明确不编号的内容,则可以按稿件习惯用文字说明位置,而不假装存在自动号码。
常见 ref 取得引用值,eqref 则用于按公式引用形式显示并带相应括号,后者属于 amsmath 提供的功能。选择哪种应与全文引用样式一致,不能在外面手工再加一层括号而形成重复。它们都需要能找到标签,换一个引用命令不能修复拼错的名称。
检查时可暂时选一条简单编号公式和一个引用位置作为测试。这对关系正常后,再处理复杂章节。若简例也失败,问题更可能在文档配置或编译过程,而非数学结构本身。

单式预览负责结构,工程负责引用关系
本站可以帮助检查公式的分式、上下标与符号内容,却不会替整篇 LaTeX 工程解析所有标签关系。把带引用命令的片段单独粘入预览,即使它没有显示期望号码,也不能说明原工程的引用必然错误,相关标签可能根本不在这个局部环境中。
若最终交付 Word,需要在目标文档中重新安排适合的编号与引用方式。本站导出应在「可视化」模式执行,并满足登录与会员条件。输出完成后,对照原稿标签所代表的公式,检查正文提到的每个号码,避免格式转换后留下指向旧顺序的引用文字。
延伸阅读
- LaTeX 公式代码大全:分开管理公式片段和文档相关设置。
- mhchem 语法:继续查看化学表达式的专用写法。
常见问题
- LaTeX 公式引用为什么显示 ???
- 常见原因是引用信息还未更新、标签与引用名不一致,或目标环境没有产生可引用编号。先查看编译提示,再依次核对标签位置和目标环境,不能只反复改引用文字。
- label 应该写在 equation 里面还是外面?
- 公式标签通常放在对应的编号环境内部,让它关联该公式产生的号码。放在环境外可能关联到其他计数位置,应在完整文档中编译并检查实际引用结果。