1

I am using Ubuntu to compile my PhD Beamer presentation and the citations are not "found".

Here is my Makefile:

PRESENTATION = PhD_Presentation
TEX = pdflatex -synctex=1 -interaction=nonstopmode --shell-escape
OPEN = open -a Skim.app
RESOURCES = ${PRESENTATION}.pdf

default:
        ${TEX} ${PRESENTATION}.tex
        ${OPEN} ${PRESENTATION}.pdf

file:
        ${TEX} ${PRESENTATION}.tex
        ${TEX} ${PRESENTATION}.tex

release: file
        rm -rf Release
        mkdir Release
        cp ${RESOURCES} Release
        rm -rf auto *_minted-* *.log *.aux *.synctex.gz* *.out

clean:
        rm -rf auto *_minted-* *.log *.aux *.synctex.gz* *.out

Here is how I'm using biblatex in my preamble.

\usepackage[natbib=true,style=authoryear,backend=bibtex,useprefix=true]{biblatex}

Here is how I'm referencing my citations \cite{Mitry_2010_Review} and calling the bibliography:

\begin{frame}[t, allowframebreaks]
    \frametitle{References}
    \printbibliography
\end{frame}

I have added my bibliography in the following folder:

\addbibresource{./bib_files/bibliography}

enter image description here

However, here is the following error message that I am getting:

LaTeX Warning: Citation 'Gariano_2004' on page 4 undefined on input line 44.


LaTeX Warning: Citation 'Mitry_2010' on page 4 undefined on input line 44.


LaTeX Warning: Citation 'Matsumoto_1984' on page 4 undefined on input line 44.


LaTeX Warning: Citation 'Mitry_2010_Review' on page 4 undefined on input line 4
4.

I'm not sure how to tell Tex that the bibliography does exist.

Any suggestions on if there is a better way to do this. TIA

3
  • You need to run a bibliography tool on your document and not just pdflatex. See tex.stackexchange.com/q/63852/35864. Because you are currently passing backend=bibtex, to biblatex, you need to run bibtex ${PRESENTATION} (for a full compilation you need LaTeX, BibTeX, LaTeX, LaTeX). For biblatex the default bibliography tool is Biber, which is far more powerful than BibTeX, so I recommend you change backend=bibtex, to backend=biber, and add biber ${PRESENTATION} to your makefile.
    – moewe
    Feb 26, 2021 at 5:47
  • 3
    Oh, one other thing: \addbibresource takes the file name with .bib extension. So \addbibresource{./bib_files/bibliography} should be \addbibresource{./bib_files/bibliography.bib}.
    – moewe
    Feb 26, 2021 at 6:57
  • Thank you! I added biber ${PRESENTATION} to my make file and also added .bib to the \addbibresource and that seemed to do the trick! Thank you! Again, this is my first time using a makefile with linux. Feb 27, 2021 at 6:19

1 Answer 1

1

In order to produce citations and a bibliography you not only need to run LaTeX (that is your favourite flavour of LaTeX: pdflatex, lualatex, xelatex, ...) on your document: You also need to run a bibliography tool (normally either BibTeX or Biber). Why that is necessary and what the bibliography tools do is explained brilliantly in Question mark or bold citation key instead of citation number.

Since your are using biblatex I strongly recommend you run Biber and not BibTeX.

To this end add a Biber call to your makefile. A full compilation cycle should be

${TEX} ${PRESENTATION}
${BIBTOOL} ${PRESENTATION}
${TEX} ${PRESENTATION}
${TEX} ${PRESENTATION}

where you defined BIBTOOL analogous to TEX as

BIBTOOL = biber

You do not always need to re-run the full compilation cycle when you only change your documents in a way that does not influence the citations. But if you want to be sure to get the expected output you need to run the full cycle.

You should then change the biblatex call in your document to

\usepackage[backend=biber, natbib=true, style=authoryear, useprefix=true]{biblatex}

i.e. replace backend=bibtex, with backend=biber,. While BibTeX is still supported as legacy backend in biblatex it does not allow you to use all of biblatex's features.

Finally, change \addbibresource{./bib_files/bibliography} to

\addbibresource{./bib_files/bibliography.bib}

\addbibresource requires the file extension.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.