0

I've got this warning message from Biblatex, after several runs, this message still appears.

Since my bib-File has about 100 entries, and I cannot find any failure, I'm wondering which behaviours could lead to such an error?

Every entry has an "keywords" defined, and I'm ordering the bibliography by keywords. I just saw this error today and I don't know when it arose the first time. So I'm interested in a list of points to check, how this error could occure. I run the py-parser for bibtex [1] on it, but it doesn't show me up the error.

Edit

I copied all of my preamble into a new file and copied the bib-printing part, too. The result is well printed. So my question can be reduced to:

What mistakes could I do in the content part, that leads to this warning and a bibliography with "[0]" in every entry, instead of its real entry.

One mentioned, that I could hit in a misspelling or a missing link. Are there any other failure sources?

Edit2

My experiments have shown, the most efficient way to get such a behaviour is to use any cite command with an undefined reference, even if it is only a typo or really not defined. (Well, biblatex makes exactly what is intend to do: if a string is not an entry, it arises an error. So even typos are not defined entries ;) )

Solution

If someone ends up into such a problem just reduce your problem to the most smallest one. That means: First: Check if any "keywords" is set, if used. Then: Use your whole preamble and print the complete bibliography. If this ends up in the same error, your problem might be in your preamble. -> Reduction of preamble, until you get your bib printed. Adding slowly parts back to the preamble, until the error occurs again. That might show you, what lead to the warning.

Otherwise input small parts until the misbehaviour appears. -> Reduction of the part, until your problem does not appear anymore.

Your way is, therefore, a reproducing way. Setup the "backend", include steps of the "frontend" (content) and look for the file, that leads to the error.

[1] https://github.com/Pezmc/BibLatex-Check <-- this is only the used checking software

  • 4
    Please post a minimal example within the question. No github or pastebin etc. links. – Johannes_B Dec 3 '17 at 10:33
  • 5
    The probable cause for the warning might be an undefined reference. You asked for wobnat, but the real entry is wombat. A typo. – Johannes_B Dec 3 '17 at 10:34
  • 3
    Look in the .log file it will tell you which reference(s) could not be found (search for "undefined") – Andrew Swann Dec 3 '17 at 10:37
  • 3
    How is a computer program supposed to know what a typo is and what not? You will also get an error message for \tableofcotnents. – Johannes_B Dec 3 '17 at 11:04
  • 4
    Well, biblatex has in its log something like LaTeX Warning: Citation 'farrer1965Christian' on page 1 undefined on input line 40. that is pretty explicit. Biber does not know where you cited something, but it also reports entries that were not found, it is a simple matter to copy the offending key and search for it in the .tex file. – moewe Dec 3 '17 at 11:13
3

The warning messages

There were undefined references

Is a generic LaTeX warning. biblatex issues this warning in several circumstances, when a rerun of LaTeX and/or Biber is required.

If specific references were not found, these will be listed in the .log file as well

Package biblatex Warning: The following entry could not be found
(biblatex)                in the database:
(biblatex)                ysbrand
(biblatex)                Please verify the spelling and rerun
(biblatex)                LaTeX afterwards.

If the backend has not been run, biblatex will also log the line and page of the missing reference, but it will stop doing so after the backend has been run to avoid cluttering the .log file.

In general, if you have a bibliography problem you should not only examine the .log file written by LaTeX, you should also have a look at the .blg file written by Biber. (If it is not present, Biber was not called or failed to run very early on.)

There can be several causes for problems like this.

No bibliography/citations at all

If you don't get a bibliography at all and get only bold citekeys in citations for all entries, it is quite likely that Biber did not complete its run at all. This, again, can have several causes, it could be that you failed to run Biber, it could be a version mismatch between Biber and biblatex, it could be a malformed .bib file that is so badly malformed that it aborts the Biber run. You can read more about these kind of problems in Troubleshooting for biber. A great explanation why a Biber run is necessary can be found in Question mark or bold citation key instead of citation number (what is said about BibTeX there holds for Biber as well).

Only certain sources are missing

If there are only a few entries that do not appear as expected while other entries work, that is because these entries could not be found in the .bib file. This, again, can have several causes

  • A typo in the entry key. You typed \cite{sifgridsson}, but the entry is called sigfridsson. Biber can detect typos that are caused by a case-mismatch, so it asks you explicitly if you meant to type sigfridsson when you typed Sigfridsson. But it does not detect more complicated typos.
  • The entry is not present in the .bib file(s) added with \addbibresource.
  • The entry is present in the .bib file, but Biber had to skip it because it was malformed. In those cases Biber will warn you in the .blg file.

Miscellaneous technical reasons

The generic There were undefined references message is also printed in a few situations when all .bib entries were found by the backend, but a re-run of LaTeX is still required.

  • This can be the case if a citation was removed (i.e. citation that was cited before is not cited any more). In that case a re-run might be necessary to get the label numbering or disambiguation right.
  • With the sorting template none it is also necessary to rerun LaTeX if the order of citations changed.
  • A rerun of the backend is also required if refcontexts were changed or \printbibliographys were added or removed.
  • LaTeX needs to be rerun if page breaks might have changed.

In most of these cases the rerun message will disappear if you rerun LaTeX (and Biber) without changing the document in the meantime.

If the warning persist nonetheless, it can be a good idea to remove the temporary files (.aux, .bcf, .bbl, ...) and compile again. Problematic settings can survive in the auxiliary files and cause biblatex to think something is wrong, in some of these cases no amount of rerunning helps, only a clean restart gets you out of the mess.

It can be necessary to remove the temporary files if you change the sorting option or other options that influence it (defernumbers springs to mind) especially if you use a numeric style.

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.