我正在使用此处提供的文档模板:http://iel.ucdavis.edu/code/ASME/conf-1.7b.html。
我的 MWI 是tex
模板本身提供的文件。我所做的只是更改作者姓名、会议编号等,并重命名tex
和bib
文件(新文件名不包含空格)并包含一些包,例如fontenc
、babel
。您可以在下面的 diff 链接中找到完整的更改。
但是,当我使用 MikTeX 进行编译时,生成的aux
文件包含类似的条目\citation{2.5pt plus 1.49998pt minus 0.59998pt}
,因此它会生成空bbl
文件并且没有参考书目。我在这里做错了什么?
编辑1
我认为这是不言而喻的,但我将\bibliography
命令 改为
\bibliography{References}
将bib
文件重命名为References.bib
。我的tex
文件名是Report.tex
编辑2
MWI 很难削减,因为我不知道哪个部分导致了问题。您可以查看此差异以查看我对tex
模板附带的文件做了哪些更改:http://www.diffchecker.com/bvge2l6m。原始tex
文件与参考书目编译良好。
答案1
产生错误行为的一个最小示例是
\documentclass[twocolumn,10pt]{asme2e}
\usepackage[english]{babel}
\begin{document}
\cite{xyz,xxx}
\end{document}
文件.aux
显示
\citation{0.0pt}
错误行为是由于以一种令其满意的方式asme2e.cls
定义,同时以不兼容的方式重新定义宏。\@citex
babel
结论是该类与 不兼容babel
,尽管它应该兼容。一种可能的解决方法是使babel
的重新定义无效\@citex
:
\documentclass[twocolumn,10pt]{asme2e}
\makeatletter
\let\asme@citex\@citex % save amse2e definition of \@citex
\makeatother
\usepackage[english]{babel} % English language/hyphenation
\makeatletter
\let\@citex\asme@citex % restore
\makeatother
\begin{document}
\cite{xyz,xxx}
\end{document}