编译中文文献的bib文件出错

os: win10。 TeX: LaTeX + Emacs + auctex。 中文bibtex索引来源:百度学术。 问题描述: 包含纯中文文献的a.bib(utf8编码)文件在主tex(ctexart文件类)文件中使用时,出现如下报错 c9881e2928a82b2fa484cc24476307b 第一次引用中文文献,不知道如何解决。如有知情者告知,不胜感激!!

看着不像是参考文献的问题

1 个赞

是的,百度给的bibtex索引其实有问题,但我都给手动改过来了

你还要给我们你的.tex文件内容(删掉你的正文,保留个最精简的引用例子,然后所有的prembles都要有),应该是你prembles部分有问题。只给error信息没法查问题。

我觉得是你在CTeX中引用文献使用错误,和中不中文没关系。注意CTeX用的是XeLaTeX或LuaLaTeX,你如果还是按旧的pdflatex的方式加载文献肯定是不行的。

:+1: :+1: :+1:您说的对,我应该是还在用老的pdflatex,请问怎么用XeLaTeX :joy:我截了所有可用命令的图

让您回答一个菜鸟问题,太麻烦您了!

pdflatex其实也是可以用的,但写中文用起来非常复杂。

你试试下面这个CTeX例子,我是可以正常编译的,注意用bibtex和XeLaTeX。注意第二行是字体设置(我们系统不同,可能字体你没有,所以先注释掉了)另外注意,我们设好用utf8,所以.bib文档也应该是utf8编码,不然基些系统会报错或pdf出乱码。

正文:

\documentclass[utf8,a4paper,11pt]{ctexart}
%\setCJKmainfont[BoldFont={STHeiti}]{SimSun}

\title{CTeX简易文档}
\author{无名氏}
\date{\today}

\begin{document}
\maketitle

\section{一级标题1}
这是一行中文字。

\section{一级标题2}
这里引入一个中文文献\cite{song1985}。这里是另一个英文文献\cite{rudin1964}。


\bibliographystyle{plain}
\bibliography{library}

\end{document}

library.bib里的内容:

@book{rudin1964,
  title={Principles of mathematical analysis},
  author={Rudin, Walter and others},
  volume={3},
  year={1964},
  publisher={McGraw-hill New York}
}                  

@book{song1985,
  title={人口控制论},
  author={宋健 and 于景元},
  year={1985},
  publisher={科学出版社}
}

编译出的pdf:

1 个赞

万分感激!!按照您给出的路线,预期结果可以实现:

但是\documentclass{utf8}中utf8必须是小写才可以,大写依然报错。 :+1: :+1: :+1:

UTF8选项大写的报错是: 1591358335(1)

好吧,我这边大小写都可以,可能是Miktex和TeXLive的差别?或者OS?不管它了,能编译出来就好。

嗯嗯,我用的是TexLive + Win10

我用org-mode 转LaTeX很方便。win10+org-mode+miktex+org-ref+helm-bibtex

1 个赞

大神,我大概知道怎么出错了,就是无论中英文文献,引用关键字必须是英文……我把引用关键字换成英文与数字就ok了

1 个赞

这个应该不是问题。我有中文的bibtexkey是可以的。

1 个赞

那我是不是少东西了

可能是你的tex文档的encoding不是utf8,导致解析过程中成为了乱码无法匹配

我用的是utf8,我还专门检查了下呢

你用其他软件编译一下呢?texlive应该自动texworks。

多谢,我试试

大神 我编译你给的那个测试文件时 报错Font unisong82 at 657 not found 怎么办哇

字体没有,不是这个配置的问题,是你缺少了字体,下一个unisong82就好了,或者将这个改成你电脑上面存在的字体。