biblatex:引用未定义,参考书目为空

biblatex:引用未定义,参考书目为空

我正在运行手动安装的 TexLive (拖船) 在 Ubuntu (14.04)。我的 tex 文件使用比布拉特克斯比伯后端。

当我跑步时乳胶在文件上,它告诉我:

LaTeX Warning: Citation 'DerridaRM' on page 3 undefined on input line 18.
LaTeX Warning: Empty bibliography on input line 20.

当我跑步时比伯在同一个文件上,它识别出引文(“找到 BibTeX 数据源‘../../Literaturverwaltung/MASTER.bib’”)。但是比博特才不是:

This is BibTeX, Version 0.99d (TeX Live 2014)
The top-level auxiliary file: test.aux
I found no \citation commands---while reading file test.aux
I found no \bibdata command---while reading file test.aux
I found no \bibstyle command---while reading file test.aux

该文件在我的旧系统上可以正常工作。我不明白为什么现在不行了。也许我在安装时犯了一个错误,但我在网上找不到任何解决方案。(大多数解决方案都涉及错误的 .bib 引用,但这里不是这种情况。)

一个简单的例子:

\documentclass[a4paper]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage[backend=biber]{biblatex}

\addbibresource{../../Literaturverwaltung/MASTER.bib}

\begin{document}

\section{Einleitung}
Ich zitiere einen Test.\autocite{DerridaRM}

\printbibliography 
\end{document}

.aux 文件包含以下内容:

\relax 
\abx@aux@sortscheme{nty}
\abx@aux@cite{DerridaRM}
\@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 }
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {1}Einleitung}{1}}

我参考了这个 bib-entry:

@BOOK{DerridaRM,
  author = {Jacques Derrida},
  title = {Rückkehr aus Moskau},
  origtitle = {Moscou aller-retour},
  editor = {Peter Engelmann},
  date = {2005},
  origdate = {1990},
  translator = {Monika Noll},
  origlanguage = {french},
  publisher = {Passagen},
  location = {Wien},
}

我希望有人能帮忙。提前谢谢您……

答案1

好吧,我稍微改变了一下您给出的 MWE,并将filecontents您给出的 bib 条目打包到 MWE 中,以便将所有内容整合在一起。

您可以\addbibresource{\jobname.bib} 在 MWE 中使用,但您应该使用简单的 \addbibresource{\jobname}

编辑:澄清一下:我正在使用当前的 MiKTeX 2.9,在.bib这里使用时收到一条错误消息。消息是[934] Utils.pm:160> ERROR - Cannot find 'test-neu.bib'!。对我来说,TeX Live 和 MiKTeX 的行为似乎存在差异...(请参阅@moewe 的评论)。

\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@BOOK{DerridaRM,
  author = {Jacques Derrida},
  title = {Rückkehr aus Moskau},
  origtitle = {Moscou aller-retour},
  editor = {Peter Engelmann},
  date = {2005},
  origdate = {1990},
  translator = {Monika Noll},
  origlanguage = {french},
  publisher = {Passagen},
  location = {Wien},
}
\end{filecontents*}
\documentclass[a4paper]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage[backend=biber]{biblatex}

\addbibresource{\jobname}

\begin{document}

\section{Einleitung}
Ich zitiere einen Test.\autocite{DerridaRM}   

\printbibliography 
\end{document}

现在,如果您使用pdflatexbiber和,您的 MWE 就可以很好地编译。pdflatexpdflatex

结果是:

在此处输入图片描述

答案2

我刚刚在 Ubuntu 20 LTS 上安装了 TexLive 2021 和 Texmaker。可以从 tug.org 快速安装页面安装 Texlive。以下是我需要执行的操作,以使我的 latex 文件进行编译:

  1. 通过在终端中输入例如来查找pdflatexbibtex和的位置。biberwhereis pdflatex
  2. 您可能会看到每个程序有多个位置。复制位于 TexLive 路径上的那个,例如/usr/local/texlive/2021/bin/x86_64-linux/bibtex
  3. 在 Texmaker 配置窗口中复制所有这些路径: Texmaker 配置\usepackage[backend=biber,...]{biblatex}如果您在源文件中 使用,请确保在 Bib(la)tex 字段中提供 biber 路径而不是 bibtex 路径。
  4. 将命令更改Quick Build为第二个选项: 快速构建命令
  5. 这应该可以。如果您在编译源文件时遇到缺少样式文件/未找到包的错误,请texliveonfly.py在您的 texlive 安装中查找: sudo find /usr/local/texlive/ -name 'texliveonfly.py' [sudo] password for bhattah: /usr/local/texlive/2021/texmf-dist/scripts/texliveonfly/texliveonfly.py 或者,如果您的安装中没有附带它,请从互联网上下载它。
  6. 然后运行, python3 /path-to/texliveonfly/texliveonfly.py /path-to/main.tex 这将自动安装任何缺失的包,并且您现在应该能够成功编译您的 latex 源文件。
  7. 此外,如果您想在 Texmaker 中检查拼写,请将sudo find / -name 'en_*.dic'生成的路径粘贴到 Texmaker > 配置 texmaker > 编辑器 > 拼写词典字段中。

相关内容