# biblatex: Citation undefined, Empty bibliography

I'm running a manual-installed TexLive (tug) on Ubuntu (14.04). My tex-file uses biblatex with biber backend.

When I run latex on the file, it tells me:

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


When I run biber on the same file, it recognizes the citation ("Found BibTeX data source '../../Literaturverwaltung/MASTER.bib'"). But bibtex does not:

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


The file worked on my older system. I don't understand, why it doesn't now. Maybe I made a mistake with the installation, but I didn't find any solution on the net. (Most solutions refer to false .bib-references, but this is not the case here.)

A minimal example:

\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}


The .aux-file has this content:

\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}}


I refer to this 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},
}


I hope someone can help. Thanks in advance…

• As biber works you don't need bibtex. So don't run it. And if your script/profile is doing it: remove bibtex from the script. Oct 6, 2014 at 12:33
• When I started writing (my texts in humanties) in Tex, I decided to use biblatex because it offers more bibliography-options. Maybe I am not up to date?
– dia
Oct 6, 2014 at 12:43
• Maybe I'm not getting this right. But if you specify backend=biber, the file only works if you run Biber, if you insist on BibTeX (why would you want to do that though? - except if you are on a really old system without Biber), you of course need to specify backend=bibtex (if you do not have any backend option, biblatex defaults to Biber). Oct 6, 2014 at 12:54
• Your system is ok. biblatex is fine, biber is fine. You don't need bibtex anymore. biber is a replacement for bibtex. Oct 6, 2014 at 12:54

## 2 Answers

Well, I changed your given MWE a little bit and added with package filecontents your given bib entry to the MWE to have all things together.

You use \addbibresource{\jobname.bib} in your MWE, but you should use simple \addbibresource{\jobname}.

EDIT: To clarify this: I'm using current MiKTeX 2.9 and I get an error message when using .bib here. The message is [934] Utils.pm:160> ERROR - Cannot find 'test-neu.bib'!. For me it seems that there is a difference between TeX Live and MiKTeX behaving ... (see comment of @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}


Now your MWE compiles fine, if you use pdflatex, biber, pdflatex and pdflatex.

With the result:

• I'm sorry. I made once again "latex" and not, like you mentioned, "pdflatex". With "pdflatex" it works! Thank you!!
– dia
Oct 6, 2014 at 13:21
• If one uses \addbibresource on should add the .bib extension (the doc says: "Do not omit the .bib extension from the filename.") You have a slight typo in \begin{filecontents*}{\jobname.bin} in your MWE. Oct 6, 2014 at 14:13
• I think the error you get is due to your typo in \jobname.bin (note the n and not the expected b at the end). That was the typo I was referring to initially (I hadn't noticed the filecontnts one, not being a native speaker either). Still, the documentation is quite adamant when it comes to the file extension in \addbibresource (it's another thing for the deprecated \bibliography though; see p. 71 of the doc). Oct 7, 2014 at 4:53
• Interestingly though your exact MWE compiles fine (albeit with a warning by Biber about characters of junk). What I could suspect from examining the .blg file is happening in this case is the following: Just being told to look for \jobname as the bibsource (not \jobname.bin where it actually resides in your MWE), Biber roams the directory and finally looks at \jobname.tex where - surprise, surprise - it does find some code that looks suspiciously like a bibliohgraphy (the filecontents bit contains it after all), Biber cannot deal with the stuff around this and issues a warning ... Oct 7, 2014 at 5:03
• ... about junk somewhere along the lines of BibTeX subsystem: C:\Users\<user>\AppData\Local\Temp\Gx6Iszenyq\strb.tex_4648.utf8, line 3, warning: 64 characters of junk seen at toplevel. So the rest of the .tex file is ignored and only the .bib portion is read and processed. Obviously this is not what is supposed to happen normally. And the whole thing breaks down as soon as the filecontents part in the .tex file is removed (with of course a .bib file remaining in the directory) as is normally the case in a proper document. Oct 7, 2014 at 5:06

I just installed TexLive 2021 and Texmaker on Ubuntu 20 LTS. Texlive can be installed from tug.org Quick Install page. Here is what I needed to do to get my latex files to compile:

1. Find where your pdflatex, bibtex, and biber are located by typing whereis pdflatex, e.g., in the terminal.
2. You might see more than one locations for each program. Copy the one which is on your TexLive path, e.g., /usr/local/texlive/2021/bin/x86_64-linux/bibtex.
3. Copy all these paths in the Texmaker configuration window: If you are using \usepackage[backend=biber,...]{biblatex} in your source file, make sure to give the biber path in the Bib(la)tex field rather than bibtex path.
4. Change your Quick Build command to the second options:
5. This should do it. If you are getting missing style file/package not found error on compiling your source file, then find texliveonfly.py in your texlive installation: sudo find /usr/local/texlive/ -name 'texliveonfly.py' [sudo] password for bhattah: /usr/local/texlive/2021/texmf-dist/scripts/texliveonfly/texliveonfly.py Or download it from the internet if not shipped with your installation.
6. Then run python3 /path-to/texliveonfly/texliveonfly.py /path-to/main.tex This should install any missing packages automatically, and you should be able to compile your latex source file successfully now.
7. Additionally, if you would like to check spellings in Texmaker, then sudo find / -name 'en_*.dic' and paste the resulting path in Texmaker > configure texmaker > editor > spelling dictionary field.