从 2.43 版升级到 3.51 版后,BibTex 无法与 TexShop 配合使用

从 2.43 版升级到 3.51 版后,BibTex 无法与 TexShop 配合使用

我正在尝试在我的 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=biberbackend=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/所需的文件bibermwe.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无关。

相关内容