我正在尝试在我的 MacOs 中使用以下格式用 Latex(TexShop 3.51)编写文档:
\documentclass[11pt, twoside]{report}
\usepackage{graphicx}
\usepackage[papersize={16.8cm,24cm},width=120mm,top=25mm,bottom=25mm,bindingoffset=6mm]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{courier}
\usepackage{biblatex}
\bibliography{Biblio.bib}
\usepackage{hyperref}
\hypersetup{colorlinks,
linkcolor=blue,
filecolor=black,
urlcolor=black,
citecolor=red}
\title{Bla Bla Bla}
\author{Bla Bla}
\date{24$^{th}$ of November of 2015}
\begin{document}
\pagenumbering{roman}
\maketitle
\tableofcontents
\chapter{Introduction}
Bla bla bla \cite{Baibich_PRL88}
\section*{References}
\printbibliography[heading=none]
\end{document}
当我编译这个.tex 文件时,稍后我尝试编译我的 Biblio.bib 文件,内容如下:
@article{Baibich_PRL88,
title={Giant magnetoresistance of (001) Fe/(001) Cr magnetic superlattices},
author={Baibich, Mario Norberto and Broto, Jean Marc and Fert, Albert and Van Dau, F Nguyen and Petroff, Fr{\'e}d{\'e}ric and Etienne, P and Creuzet, G and Friederich, A and Chazelas, J},
journal={Physical review letters},
volume={61},
number={21},
pages={2472},
year={1988},
publisher={APS}
}
我收到以下消息:
I found no \citation commands---while reading file Main.aux
I found no \bibdata command---while reading file Main.aux
I found no \bibstyle command---while reading file Main.aux
当我检查我的 Main.aux 文件时,它不包含 bibtex 所需的任何信息:
\relax
\providecommand\hyper@newdestlabel[2]{}
\abx@aux@sortscheme{nty}
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\@writefile{toc}{\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax }
\@writefile{lof}{\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax }
\@writefile{lot}{\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax }
\abx@aux@cite{Baibich_PRL88}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {1}Introduction}{iv}{chapter.1}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\addvspace {10\p@ }}
奇怪的是,完全相同的文件在我的旧版 TexShop 2.43 中运行正常(即 .aux 包含 \bibstyle、\bibdata 和 \citation 信息)。如果我尝试在最新的 TexShop 应用程序中使用 .tex 文件编译后生成的 .aux 文件(使用 2.43 版),它会告诉我版本不兼容。此外,如果我在 3.51 版中将参考书目插入 .tex 文件末尾,格式为 \begin{thebibliography} + \bibtem,那么就可以了。但我真的需要 bibtex 能够正常工作,因为它会是一篇很长的文档。
我将非常感激您的帮助。提前致谢!
答案1
与您使用的编辑器 TeXShop 及其版本无关,代码中与问题相关的行是这样的:
\usepackage{biblatex}
这意味着biblatex
建议将其用作biber
后端。要记录这一点(我强烈建议始终这样做!),您还可以编写:
\usepackage[%
backend=biber
]{biblatex}
如果你真的想使用,bibtex
你可以改用backend=biber
。backend=bibtex
但更好的办法是学习如何建议 TeXShop 使用biber
而不是bibtex
。因为我没有 MAC,所以我无法帮助你……
根据您在问题中的描述,我认为一个编辑器调用了biber
另一个编辑器bibtex
,从而导致了错误。
使用以下 MWE(对于biber
,如果需要,只需将其更改为bibtex
,请参阅标记注释<==========
)
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{Baibich_PRL88,
title = {Giant magnetoresistance of (001) Fe/(001) Cr magnetic
superlattices},
author = {Baibich, Mario Norberto and Broto, Jean Marc and
Fert, Albert and Van Dau, F Nguyen and
Petroff, Fr{\'e}d{\'e}ric and Etienne, P and Creuzet, G
and Friederich, A and Chazelas, J},
journal = {Physical review letters},
volume = {61},
number = {21},
pages = {2472},
year = {1988},
publisher = {APS},
}
\end{filecontents*}
\documentclass[11pt, twoside]{report}
\usepackage{graphicx}
\usepackage[papersize={16.8cm,24cm},width=120mm,top=25mm,bottom=25mm,bindingoffset=6mm]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{courier}
\usepackage[%
backend=biber % bibtex % <==============================================
]{biblatex}
\bibliography{\jobname.bib} % <== to call bibfile created with filecontents
\usepackage{hyperref}
\hypersetup{%
colorlinks,
linkcolor=blue,
filecolor=black,
urlcolor=black,
citecolor=red
}
\title{Bla Bla Bla}
\author{Bla Bla}
\date{24$^{th}$ of November of 2015}
\begin{document}
\pagenumbering{roman}
\maketitle
\tableofcontents
\chapter{Introduction}
Bla bla bla \cite{Baibich_PRL88}
\section*{References}
\printbibliography[heading=none]
\end{document}
得到第三页的结果:
您也可以使用终端中的命令进行测试。假设您复制了名为 的 MWE mwe.tex
。然后您可以输入命令
pdflatex mwe.tex
创建bibtex
/所需的文件biber
:mwe.aux
。然后使用后端biber
:
biber mwe
或者使用后端bibtex
:
bibtex mwe
然后两次
pdflatex mwe.tex
答案2
我不知道您之前的 biblatex 和 biber 版本有多旧,但最近的版本使用 biber 程序而不是 bibtex 来处理 .bib 文件。
放置线
% !TEX TS 程序 = pdflatexmk
在文件顶部。然后使用 Typeset->Typeset (Cmd-T) 和 pdflatexmk 引擎(使用 pdflatex 和 latexmk perl 脚本)进行排版。latexmk perl 脚本将为您完成所有必要的处理,并使用 biber 或 bibtex(无论哪个是必要的)进行参考书目处理。
PS:与TeXShop无关。