Latex编译报错记录及解决办法

Latex编译过程中总是会碰到各种各样的报错,故整理成文档,方便查阅。

  • Latex参考文献[?]

这种情况,我专门写了给博客,参考:Latex 编译时出现问号[?]的几种情况及解决办法_Pycharm比VScode更好用的博客-CSDN博客_latex参考文献显示问号

  • 特殊字符没有转义

这类错误可能比较常见,文中或者参考文献中含特殊符号或者作者名里含特殊语言(俄文之类的),如下图:

例如,下面的“&”,要加 \ 转义一下

@book{RN265,
   author = {XXX,XXX,XXX},
   title = {XXXXXX},
   publisher = {Springer Science \& Business Media},
   ISBN = {XXX},
   year = {XXX},
   type = {XXX}
}
其他特殊符号,请自行查询并转义。

  • 导入不必要的包

投elsevier的期刊,如果是latex,需要用到elsarticle.cls,碰到错误paragraph ended before \@citex was complete。

解决办法:去掉或注释usepackage{cite},即可。

  • 参考文献重复

编译器会显示“repeated ref entry”之类的报错信息,说明在ref.bib文件里有重复的参考文献条目,请自行检查参考文献是否重复。

  • Paragraph ended before XXX was complete.

出现这种报错,肯定是跟XXX相关的参数或者{}的输入错误,有时候漏掉或者多一个“}”,将“{”错输成“}”都会导致这种错误,逐个检查XXX相关的写法即可。

  • Error: Command XXX already defined.

出现这种情况,说明报错处显示的命令行,或者导入的包已经被定义过了,可能的重复导入(检查有没有重复导入包),也可能是模板自带,而你自己又重新导入了一遍。删掉多余导入的包,或者改用模板自带的命令。

例如:LaTeX Error: Command \thead already defined. 编译器显示 makecell 包已经在当前编译环境下被定义了(可能是模板自带的),这时候需要注释掉\usepackage{makecell}这行命令,相应的在文中删掉\makecell{XXX\\XXX}这种写法,换行可以采用其他方法(如直接用 \newline,见另一篇博客)。

  • Bibtex: You can't pop an empty literal stack for entry XXX

这种情况一般出现在期刊论文里,期刊对自己的参考文献都有特殊的格式要求,可以看看报错的XXX是对应着哪篇文献。这种错误是说明对应类型的参考文献条目缺少了相应的域(如moth,journal,year等域的缺失)。查一下.cls文件(论文的格式文件,里面会加载各种格式的要求,也包括参考文献格式的文件,即.bst文件),.bst是文章对应的参考文献格式文件,在.bst文件里,找到对应类型的文献的Function修改,例如URL域缺失了一些域,在.bst文件里找到misc类型对应的报错检测函数如下,自己修改与之对应的Function:

FUNCTION {misc}
{ output.bibitem
  format.authors "author" output.check
  format.editors "author and editor" output.check
  format.title "title" output.check
  type missing$
    { skip$ }
%    { format.type "type" output.check }
    { "type" output.check }    
    %%{ inbrackets type output }
  if$
  new.block
  format.publisher.address output
  format.date "year" output.check
  new.block
  format.note output
  new.block
  howpublished new.block.checka
  howpublished "howpublished" bibinfo.check output
%  output.web.refs  % urlbst
  fin.entry
  empty.misc.check
}

将对应FUNCTION里的缺失检测的语句注释掉就可以了,如下所示,注释了type missing$,然后就不会报错了。

FUNCTION {misc}
{ output.bibitem
  %format.authors "author" output.check
  %format.editors "author and editor" output.check
  format.title "title" output.check
  %type missing$
  %  { skip$ }
%    { format.type "type" output.check }
  %  { "type" output.check }    
    %%{ inbrackets type output }
  %if$
  %new.block
  %format.publisher.address output
  format.date "year" output.check
  new.block
  format.note output
  new.block
  howpublished new.block.checka
  howpublished "howpublished" bibinfo.check output
%  output.web.refs  % urlbst
  fin.entry
  %empty.misc.check
}

类似的,如果其他类型的文献(journal,inproceedings,article,book)对应的FUNCTION里有域的缺失,注释掉检测语句就不会报错了,或者补上缺失的域(如year,author)。

Undefined control sequence.

报错原因:缺乏对应的宏包。例如画三段式表格时,需要用\toprule、\midrule、\bottomrule在宏包\usepackage{booktabs}中,没导入该宏包就会报错。


不定期更新...

整理不易,三连支持一下

  • 26
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用LaTeX编写论文的过程中,如果在官方网站下载的LaTeX模板中添加宏包\usepackage{subfigure}后出现报错,可能会遇到以下问题:LaTeX Error: Command \c@subfigure already defined. 为了解决这个问题,可以采取以下步骤: 1. 逐个宏包排查,找出与subfigure宏包冲突的宏包。 2. 注释掉冲突的宏包,即在对应的宏包前加上%符号。 3. 重新编译论文,直到不再报错为止。 这个报错是由于subfigure宏包与其他宏包发生冲突所导致的。通过注释掉冲突的宏包,可以解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [IEEE模板添加subfigure宏包报错Command \c@subfigure already defined解决方案](https://blog.csdn.net/Empress0097/article/details/131412916)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [LaTeX报错 Command \c@subfigure already defined 的解决方案](https://blog.csdn.net/qq_39779233/article/details/131847018)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值