# Biblatex with Biber: Configuring my editor to avoid undefined citations

Running the minimal example

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@ARTICLE{example,
author  = {Other, Anthony Norman},
title   = {Some things I did},
year    = {2014},
journal = {J.~Irrep. Res.},
volume  = {1},
number  = {1},
pages   = {1-10}
}
\end{filecontents*}
\usepackage[backend=biber]{biblatex}
\begin{document}
Hello\cite{example}.
\printbibliography
\end{document}


I get the warning There were undefined references.

I have read Question mark or bold citation key instead of citation number and know that I need to run:

1. LaTeX
2. Biber
3. LaTeX

However, my editor is only set up to run BibTeX. How do I go about setting up my editor/IDE to be able to run Biber, and how do I run the LaTeX/Biber/LaTeX cycle?

## Answers (sorted alphabetically by editor name)

• Each answer should be for one editor. If the editor is cross-platform, if possible give a single answer with notes covering the minor platform variations.

• Each answer should be 'stand alone', i.e. don't say 'It's almost the same as editor Y but ...' for the editor part

• Instructions for 'build tools' such as arara or latexmk are welcome but should explain how to set up the editor in question as not all editors allow simple addition of arbitrary tools

• For background to this question, see meta.tex.stackexchange.com/questions/4192/… – Joseph Wright Jan 18 '14 at 18:31
• – texenthusiast Jan 18 '14 at 21:20
• Would "my build script runs biber when necessary, out of the box" be a valid answer? – Raphael Jan 18 '14 at 23:54
• @Raphael I've tried to tighten up the guidelines to cover this. Broadly, I'd expect each answer to be about an editor, with details for using build tools fine for inclusion but hopefully focussed on the editor side. Generic 'how to use build tool X' instructions can then be linked but not included directly here. – Joseph Wright Jan 19 '14 at 10:11

## TeXstudio

In the current release (2.12 branch), TeXstudio's build process ('Build & View') by default runs pdfLaTeX but not a bibliography tool, which you need to do separately. There is also a need to change the settings to run Biber rather than BibTeX for creating a bibliography.

The configuration step sets Biber as default bibliography tool.

In the TeXstudio preferences ('Preferences ...' on the Mac or 'Options -> Configure TeXstudio' on Windows), choose the Build tab and alter the 'Default Bibliography Tool' to 'Biber'. Save and close the preferences.

The compile step is to ensure that the sequence

1. LaTeX
2. Biber
3. LaTeX

is run. Manually this can be done as follows.

1. Run 'Build & View' from the 'Tools' menu (or press the two green arrows icon), which will create a PDF but with the bibliography not completed

2. Run 'Bibliography' from the 'Tools' menu.

3. Run 'Build & View' again: the bibliography will appear in the PDF.

It is possible to set up TeXstudio in alternative ways to achieve the same effect. The key is that you have to run the compile sequence LaTeX, Biber, LaTeX, which can be done 'by hand' (as I have) or can be automated in various ways. Note that the same general idea applies whatever editor is used: this is a feature of LaTeX and not of the editor.

• More or less what I put in tex.stackexchange.com/questions/153647/… – Joseph Wright Jan 18 '14 at 18:40
• Also note that we need to install biber. – mja Jul 2 '18 at 15:17
• Important note: in addition to the above, to run biber with TeXstudio on windows 10, you should run TeXstudio "as administrator" from windows. Otherwise, biber won't be executed from the editor no matter what options you changed. – hesham Oct 26 '18 at 21:37
• @hesham In general it should not be necessary to run TeXstudio as administrator just to be be able to run Biber. It should be possible to execute Biber from within TeXstudio with only user permissions. I consider it quite dangerous to open an editor with admin permissions. If your Biber or TeXstudio requires admin permissions, then there is probably something wrong with your installation. – moewe Mar 8 at 9:34

# Texmaker

Through Quick Build for ALL documents

Click on OptionsConfigure Texmaker:

The following window opens. In Commands tab replace bibtex % by biber %. Make sure that you only have % after the path to Biber and not %.aux. You may browse to the biber.exe using the folder icon on the side (red arrow):

This will make biber as the default for all documents.

Now choose the Quick Build tab in which further choose the second option as in the following figure:

Now your quick buid button should run pdflatexbiberpdflatexview pdf. In all steps above, don't forget to press OK in all windows before exiting.

Making only biber as user command

Go to UserUser CommandsEdit User Commands as in the following figure:

In the window that opens, type in the content as shown (ignore arara thing ;-)..):

Now your build list should have biber:

Now, you can choose to run (only) biber as standalone when you wish.

• Texmaker-biber-biblatex usage Documentation in French for xm1math.net/doculatex/biblatex.html – texenthusiast Jan 19 '14 at 4:34
• Similar procedure on Linux just replace bibtex %.aux to biber % in Bib(la)tex command box without full path to binaries. I suppose this would work with MiKTeX and TeXLive distro if miktex bin and texlive bin path are added to system path. – texenthusiast Jan 19 '14 at 4:45
• – matth Jan 21 '14 at 8:01
• if i choose to run (only) biber as standalone when you wish. What is the sequence of buttons I have to push? Is it command 2 + quick build or quick build + command 2? Thanks. @Harish Kumar – Ka-Wa Yip Jul 7 '15 at 23:32

# Emacs with AUCTeX

## AUCTeX Version 11.88

Version 11.88 has (currently) probably the best support for biber and biblatex among *TeX editors: AUCTeX is able to look at biblatex load options to automatically choose the right bibliography processor on a per-document basis, you need only to enable file parsing by setting TeX-parse-self to t. You can do that by adding the following code to your .emacs

(setq TeX-parse-self t)


or customizing that variable with M-x customize-variable RET TeX-parse-self RET. Most AUCTeX users enable parsing, probably you've already done that, check it before adding the above line to your .emacs. To see the value of the variable issue C-h v TeX-parse-self RET.

As in the previous version, C-c C-c (TeX-command-master) prompts for biber/bibtex when the .bbl file is newer than the .tex file (but now it prompts for the appropriate bibliography processor, and not always biber or bibtex). In addition, if you use the toolbar, in this version the bibliography button will automatically switch between Run BibTeX and Run Biber.

In this version, the variable LaTeX-biblatex-use-Biber is local (and no more customizable) for cases in which AUCTeX fails to automatically detect the correct processor.

## AUCTeX Version 11.87

Version 11.87 is the first release of AUCTeX supporting biber by default and you don't need to add that processor to the command list. You can always run biber by hand with C-c C-c Biber RET.

### Set biber as default bibliography processor

AUCTeX uses bibtex as default bibliography processor. In order to set biber as default bibliography processor (for all documents and not on a per-document basis) you have to activate parsing of LaTeX documents by setting the variable TeX-parse-self to t (see above). Then, in source files with an explicit

\usepackage{biblatex}


line, C-c C-c prompts for biber or bibtex processor when needed (ie, if the .bbl file is newer than the .tex file), depending on the value of the customizable option LaTeX-biblatex-use-Biber, which defaults to t. But until version 11.87, AUCTeX isn't able to automatically choose the bibliography processor, which is set in a LaTeX document with the backend load option of the biblatex package. Unfortunately, the bibliography button on the toolbar is always bound to Run BibTeX, even if LaTeX-biblatex-use-Biber is set to t.

## Run latexmk

You can also run latexmk from AUCTeX. It isn't supported by default, but you can manually add it to TeX-command-list. Here are some Q&As on TeX Stack Exchange or Stack Overflow about how to setup latexmk in AUCTeX:

• I know some people use Emacs without AUCTeX, but I still can't understand what the killer feature is that vanilla Emacs provides. (At least with respect to LaTeX.) – jon Jan 18 '14 at 20:46
• @jon Well Emacs pops up in more than one answer in tex.stackexchange.com/questions/339/latex-editors-ides, so presumably some people use Emacs without AUCTeX. I guess the argument is that it's a good text editor in general, and without an add-in you get the same behaviour irrespective of the file you're editing. In any case, that doesn't affect the aim here :-) – Joseph Wright Jan 18 '14 at 20:51
• @JosephWright -- Indeed. I pratically live inside Emacs and I'm not a computer person! I meant it more as a sort of (light-hearted) provocative, tongue-in-cheek, comment. Although I have often wondered what AUCTeX did badly or what plain Emacs did particularly well, or if it was simply a matter or what one is used to, rather like the divide between vi(m) and Emacs. – jon Jan 18 '14 at 21:14
• I just added a 'vanilla' Emacs answer for anyone interested and/or stuck using vanilla Emacs. :-p – Adam Liter Jun 2 '17 at 23:04
• @dpritch Well, it should be mentioned in the question post, rather in this answer. Anyway, I guess it should be safe to assume that one installs biber before trying to use it ;-) – giordano Nov 12 '17 at 12:40

## TeXworks

The list of binaries known by TeXworks depends on where you get the program from: direct from the TeXworks site or as part of TeX Live or MiKTeX. However, at present Biber is not included in the standard set in any case. The steps needed to add Biber as an option are as follows:

1. In the TeXworks preferences ('Preferences ...' on the Mac or 'Edit -> Preferences' on Windows/Linux, choose the 'Typesetting' tab.
2. Use the '+' icon to add a new entry to to the 'Processing tool' list
3. Fill in the resulting box as follows:

• Name: Biber
• Program: biber

### Using the default build engine ("traditional") with MikTeX (Windows):

With MikTeX, LaTeXtools' default builder will use textify. Unfortunately, texify doesn't seem to support biber. However, it is possible to install and use latexmk on MiKTeX. After installing latexmk on MiKTeX, navigate to the user settings.

Then scroll down to the builder_settings block and add the line "command": "latexmk -cd -f -%E -interaction=nonstopmode -synctex=1" as shown.

### Using "basic" build:

LaTeXTools provides a "basic" builder, which takes care of running pdflatex, then bibtex or biber as necessary followed by pdflatex twice.

After installing LaTeXTools, navigate to the user settings.

Then scroll down to the builder setting and change its value to basic

### Using "script" build:

After installing LaTeXTools, navigate to the user settings.

Then alter the builder settings to script

and you can use a script. In the below example, for Windows, the build would run pdflatex then biber then pdflatex twice on the file.

# Inlage

Adding biber as a new menu in PDFLaTeX & biber

Go to BuildCompiler Options:

This opens:

Now,

1. Choose PDFLaTeX & BibTeX
2. Press Duplicate to get a copy of PDFLaTeX & BibTeX.
3. Now press Rename and rename PDFLaTeX & BibTeX copy to PDFLaTeX & Biber as shown below:

Now you should have a profile named PDFLaTeX & Biber. Open it. Select BibTeX (arrow 2). Choose Binary Name (arrow 3) as in this figure:

Save and you will have PDFLaTeX & Biber build menu as:

Which will execute pdflatexbiberpdflatexpdflatex.

Biber as standalone

Go to BuildCompiler Options as explained above.

Now,

1. Choose PDFLaTeX
2. Press Duplicate to get a copy of PDFLaTeX.
3. Now press Rename and rename PDFLaTeX copy to Biber as explained eariler.
4. Make changes in Binary Name as shown below:

After saving, you will get a build menu named Biber:

This will run only biber.

# Overleaf

Overleaf uses latexmk as the build tool behind the scenes, so bibtex or biber will be executed as needed, as well as re-running pdflatex. So there is no further action required on the part of the user.

Editor name: SublimeText / Sublime LaTeX package. https://tekonomist.wordpress.com

main.tex first line should say

%!TEX program = <program>
%\ program: one of pdflatex (the default), xelatex or lualatex. This
%\ selects the TeX engine.


bibliography.bib first 2 lines should say

%!TEX program = bibtex
%!TEX root = main.tex

• instructions are from SublimeText/LaTeXTools on GitHub section: "Build engine settings" – בנימן הגלילי Sep 10 '15 at 9:21
• Are you sure the first line of bibliography.bib should be bibtex instead of biber? – giordano Sep 10 '15 at 9:39
• Is there a way to have Biber as the bibliography compiler on a global scale in Sublime or is it always necessary to specify the use of Biber on a per-document basis? – moewe Sep 10 '15 at 9:49
• Speaking as a developer of LaTeXTools, I can assure you this doesn't work or if it does it is only by accident. – ig0774 Dec 7 '16 at 16:43

# (vanilla) Emacs (i.e., Emacs without AUCTeX)

tl;dr: (setq tex-bibtex-command "biber") and then (i) C-c C-f, (ii) C-c TAB, and (iii) C-c C-f

If, for whatever reason, you're stuck using Emacs without AUCTeX,1 you can configure the TeX print commands of TeX mode to use Biber instead of BibTeX.

There are several print commands to be aware of:

• C-c C-b: Invoke TeX on the entire current buffer (tex-buffer)
• C-c C-f: Invoke TeX on the current file (tex-file)
• C-c TAB: Invoke BibTeX on the current file (tex-bibtex-file)

C-c C-b is useful if you want to test something out, but it creates temporary files with different names, so it is not really useful for sorting out bibliographies and crossreferencing, which depend on auxiliary files.

To get bibliography and crossreference stuff right, use C-c C-f. This command will first ask if want to save your buffer (if you have a modified buffer); then, it runs either tex-run-command or latex-run-command, depending on whether you are currently in plain-tex-mode or latex-mode (see the TeX mode page for a description of how the mode is chosen.)

By default, tex-run-command is set to tex and latex-run-command is set to latex. If you'd like to use the PDF versions, you can add the following to your Emacs configuration:

(setq tex-run-command "pdftex")
(setq latex-run-command "pdflatex")


Next, you can use C-c TAB to invoke either BibTeX or Biber. C-c TAB runs tex-bibtex-command, which is, by default, bibtex.

Like with the *tex-run-commands, you can change this to biber by adding the following configuration:

(setq tex-bibtex-command "biber")


After you've made these changes, you can then go through the LaTeX -> Biber -> LaTex compilation steps with C-c C-f -> C-c TAB -> C-c C-f.

1. But really, you should probably use Emacs with AUCTeX, in which case see this answer.

# LaTeXila/GNOME LaTeX

## latexmk is the default build tool

By default GNOME LaTeX (formerly LaTeXila) uses latexmk as a build tool. latexmk can automatically figure out if and when to run Biber, so there is no pressing need to actually set up that editor for Biber. The standard build settings will do just fine.

## Biber only

In case you do want to set up a build job to only run Biber, follow these steps.

1. Select Manage Build Tools in the Build menu

2. In the Manage Build Tools window select the little plus to the bottom of the right Personal Build Tools column

3. Fill out the fields as follows

• Label: Biber (this is the name shown in the menu later, of course you may pick anything else, but 'Biber' seems sensible)
• Description: run Biber (again, the value of this field is not important for Biber to actually work)
• Add a new job to the Jobs list by clicking the plus button on the bottom
• Commands: biber \$shortname, Post Processor: all-output

Things should look roughly like

Now you can select Biber from the second (custom) group of the Build menu whenever you want to run it manually.

# VSCode using the LaTeX Workshop extension

First, ensure that you already have:

Then,

1. Open the Settings JSON file as instructed below:

1.1. Click on the Manage gear icon, and then select Settings on the menu that appears.

1.2. Click on the curly braces pair on the top right of the window.

2. Add or append (if already exists) the biber tool entry, and the compile recipe to the LaTeX Workshop entry in the opened JSON file:

• The biber tool entry:
{
"name": "biber",
"command": "biber",
"args": [
"%DOCFILE%"
]
}

• The compile recipe for biber using xelatex:
{
"name": "xelatex -> biber -> xelatex*2",
"tools": [
"xelatex",
"biber",
"xelatex",
"xelatex"
]
}


The whole LaTeX Workshop settings section should look like the following (your section could include other entries):

"latex-workshop.latex.recipes": [
{
"name": "xelatex -> bibtex -> xelatex*2",
"tools": [
"xelatex",
"bibtex",
"xelatex",
"xelatex"
]
},
{
"name": "xelatex -> biber -> xelatex*2",
"tools": [
"xelatex",
"biber",
"xelatex",
"xelatex"
]
},
],
"latex-workshop.latex.tools": [{
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
},
{
"name": "biber",
"command": "biber",
"args": [
"%DOCFILE%"
]
},
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
}
}
]


Now you can click on the recipe title on the sidebar under LaTeX Workshop to build and view the file.