我正在运行手动安装的 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}
现在,如果您使用pdflatex
、biber
和,您的 MWE 就可以很好地编译。pdflatex
pdflatex
结果是:
答案2
我刚刚在 Ubuntu 20 LTS 上安装了 TexLive 2021 和 Texmaker。可以从 tug.org 快速安装页面安装 Texlive。以下是我需要执行的操作,以使我的 latex 文件进行编译:
- 通过在终端中输入例如来查找
pdflatex
、bibtex
和的位置。biber
whereis pdflatex
- 您可能会看到每个程序有多个位置。复制位于 TexLive 路径上的那个,例如
/usr/local/texlive/2021/bin/x86_64-linux/bibtex
。 - 在 Texmaker 配置窗口中复制所有这些路径:
\usepackage[backend=biber,...]{biblatex}
如果您在源文件中 使用,请确保在 Bib(la)tex 字段中提供 biber 路径而不是 bibtex 路径。 - 将命令更改
Quick Build
为第二个选项: - 这应该可以。如果您在编译源文件时遇到缺少样式文件/未找到包的错误,请
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
或者,如果您的安装中没有附带它,请从互联网上下载它。 - 然后运行,
python3 /path-to/texliveonfly/texliveonfly.py /path-to/main.tex
这将自动安装任何缺失的包,并且您现在应该能够成功编译您的 latex 源文件。 - 此外,如果您想在 Texmaker 中检查拼写,请将
sudo find / -name 'en_*.dic'
生成的路径粘贴到 Texmaker > 配置 texmaker > 编辑器 > 拼写词典字段中。