2

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

Shalec
  • 295
  • 4
    Please post a minimal example within the question. No github or pastebin etc. links. – Johannes_B Dec 03 '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 03 '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 03 '17 at 10:37
  • I copied my whole preamble (about 2000 lines) into a clean file and printed the bibliography. It works in my minimal-example. So I did any mistake in the content. So I need to redefine my question. – Shalec Dec 03 '17 at 10:39
  • 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 03 '17 at 11:04
  • To add to Johannes' point, you could very well define a command called \tableofcotnents in which case it would not be a typo any more. biblatex and Biber have limited typo detection for entry keys: The keys are case sensitive, but if an entry is found where only the casing is different Biber warns you about that. – moewe Dec 03 '17 at 11:09
  • @Johannes_B yep, your right. I have no machine-learning included for typo exploits :D I thought of any silly stuff, one could not expect when handling a bib. My error arose in using "cite" instead of "ref". – Shalec Dec 03 '17 at 11:09
  • @moewe well, it would be nice, if biber would show me, where I used such an undefined ref, not even say "there is any" :) – Shalec Dec 03 '17 at 11:11
  • 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 03 '17 at 11:13
  • 2
    please don't edit your question to add answers/solutions, it makes the site very hard to follow later. Please edit the question just to have a question you may separately post an answer – David Carlisle Dec 03 '17 at 12:46
  • 2
    The proposed solution of preparing a minnimal working example is valid for almost every question on TeX.SX. The question is very unclear to me. If i understand it correctly, it should be closed as off-topic as the cause was a simple typo. – Johannes_B Dec 03 '17 at 15:23
  • Nah, my problem is solved, but the question is still open: What cases can lead to such an error. We only found one: Using an undefined reference. Which others can lead to such an error? – Shalec Dec 03 '17 at 18:12

1 Answers1

6

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.

and

LaTeX Warning: Citation 'ysbrand' on page 1 undefined on input line 11.

to pinpoint the actual location of the missing reference.

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 entry keys 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 might have typed \cite{sifgridsson}, but the entry is called sigfridsson. Biber can case-mismatches, 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.
  • The entry is present, but Biber failed to run on your .bib file, so that you are stuck with old data. In those cases it helps to follow the steps for no entries discussed above.

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.

moewe
  • 175,683