Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Biber seem broken

430 views
Skip to first unread message

Haines Brown

unread,
Jul 1, 2015, 10:49:26 AM7/1/15
to
I have a tex file on which I can pass the LaTeX command without a
problem. Then I run biber on it and it produces errors if there are any
citation in the file:

...
INFO - Found BibTeX data source '/home/haines/jabref/soc-sci.bib'

WARN - Invalid or undefined BibTeX entry key in file
'/tmp/fhNAqzAsTt/soc-sci.bib_9286.utf8', skipping ...

WARN - BibTeX subsystem: /tmp/fhNAqzAsTt/soc-sci.bib_9286.utf8, line
84098, warning: possible runaway string started at line 84082

ERROR - BibTeX subsystem: /tmp/fhNAqzAsTt/soc-sci.bib_9286.utf8, line
118265, syntax error: found ",", expected one of: number, name (entry
type, key, field, or macro name), end of entry ("}" or ")") or quoted
string ({...} or "...")

If there are no citations in the .tex file, there is no problem.

There is no such /tmp/fhNAqzAsTt/soc-sci.bib_9286.utf8 file for me to
look at lines 84082 or 118265 for a syntax error.

This error seems generated by some damage to tex, for when I run latex
on a perfectly good test .tex file that has a citation, I get the
same error. LaTeX command works fine if a file has no citations.

Haines Brown

Johannes Böttcher

unread,
Jul 1, 2015, 11:19:03 AM7/1/15
to Haines Brown
On 07/01/2015 04:49 PM, Haines Brown wrote:
>
> ...
> INFO - Found BibTeX data source '/home/haines/jabref/soc-sci.bib'
>
> WARN - Invalid or undefined BibTeX entry key in file
> '/tmp/fhNAqzAsTt/soc-sci.bib_9286.utf8', skipping ...
>
> WARN - BibTeX subsystem: /tmp/fhNAqzAsTt/soc-sci.bib_9286.utf8, line
> 84098, warning: possible runaway string started at line 84082
>
> ERROR - BibTeX subsystem: /tmp/fhNAqzAsTt/soc-sci.bib_9286.utf8, line
> 118265, syntax error: found ",", expected one of: number, name (entry
> type, key, field, or macro name), end of entry ("}" or ")") or quoted
> string ({...} or "...")
>

There is a an error in your bib-file. Fix it, remove the .bcf and .bbl
file and start over the compile chain.

Johannes

Haines Brown

unread,
Jul 2, 2015, 9:21:48 AM7/2/15
to
That was what I initially assumed. However, after much effort, I finally
found the problem. In an abstract = field in .bib file, there was the
string "if a = b"... This is not the only character that is disallowed
as I have found out the hard way. Do you know a reference that lists all
the illicit characters?

I might mention for any lurkers that my error message showed up some
time ago as a periodic biber bug. The work around was to do:

# rm -rf /tmp/fhNAqzAsTt/soc-sci.bib_9286.utf8

However this is not work for me for the reason above.

Haines Brown

Johannes Böttcher

unread,
Jul 2, 2015, 9:47:11 AM7/2/15
to
I cannot really confirm this. An error as you reported usually comes
from a comma where none is supposed or expected to be.

Have a look at the following example, the year of entry
walzingWombat2015 is left out, biber only sees the comma and gets
confused. Better to leave it out completely, or use an empty pair of braces.

Rather than year, a full date is better though

date = {2015},

or

date = {205-07-02},


%>8 %%
%\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{lazyLeguan2015,
author={lazy leguan},
title={some nice title},
year=2015,
abstract={"if a = b"...}
}
@article{walzingWombat2015,
author={wombat walzing},
title={some nice title},
year=,%<- year={},
abstract={"if a = b"...}
}
\end{filecontents}
\documentclass{article}
\usepackage{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
%\cite{walzingWombat2015}
\cite{lazyLeguan2015}
\printbibliography
\end{document}
%>8 %%

Ulrike Fischer

unread,
Jul 2, 2015, 9:49:46 AM7/2/15
to
Am Thu, 02 Jul 2015 09:21:37 -0400 schrieb Haines Brown:

>> There is a an error in your bib-file. Fix it, remove the .bcf and .bbl
>> file and start over the compile chain.
>
> That was what I initially assumed. However, after much effort, I finally
> found the problem. In an abstract = field in .bib file, there was the
> string "if a = b"...

abstract={aaa "if a= b" bbb}

should work fine.

abstract="aaa "if a= b" bbb"

will naturally explode, as the " before the if will end the field.


--
Ulrike Fischer
http://www.troubleshooting-tex.de/

Haines Brown

unread,
Jul 3, 2015, 5:20:28 AM7/3/15
to
Ulrike Fischer <ne...@nililand.de> writes:

> abstract={aaa "if a= b" bbb}
>
> should work fine.
>
> abstract="aaa "if a= b" bbb"

Thank you. That is a big help.

In cases where a .bib stanza has something like "month = 27
October" biber complains, but it is not fatal.

Peter Flynn

unread,
Jul 4, 2015, 7:06:21 PM7/4/15
to
I would agree that biber *is* broken, for producing error messages like
this.

1. An error message must not reference a temporary file that the user
cannot check (because it is deleted automatically).

2. It must not quote a line number with no data context (or with more
data context than a single comma!)

These are remediable programming errors, and should be fixed. This is
the kind of thing that gives otherwise excellent software a bad name.

///Peter

Peter Flynn

unread,
Jul 4, 2015, 7:07:21 PM7/4/15
to
On 07/02/2015 02:21 PM, Haines Brown wrote:
[...]
> I might mention for any lurkers that my error message showed up some
> time ago as a periodic biber bug. The work around was to do:
>
> # rm -rf /tmp/fhNAqzAsTt/soc-sci.bib_9286.utf8
>
> However this is not work for me for the reason above.

It's a temporary file which the program deletes when it exits. So you
can never see it.

///Peter


Peter Flynn

unread,
Jul 4, 2015, 7:14:04 PM7/4/15
to
Both are very good examples of very bad data.

Quoted strings inside quoted strings must use different pairs of quotes
(delimiters). This applies everywhere, not just BIBTeX. It's why stuff
like <h1 title="Life and death in "Romeo and Juliet"">R&amp;J</h1> is
illegal in HTML.

month = 27 October : month means *month*, not day or date.

Unfortunately, most of us get sent bad data all the time. Human brains
are very good at working round it; computers are not :-)

///Peter

Haines Brown

unread,
Jul 5, 2015, 6:10:45 AM7/5/15
to
Peter Flynn <pe...@silmaril.ie> writes:

> On 07/03/2015 10:20 AM, Haines Brown wrote:
>> Ulrike Fischer <ne...@nililand.de> writes:
>>
>>> abstract={aaa "if a= b" bbb}
>>>
>>> should work fine.
>>>
>>> abstract="aaa "if a= b" bbb"
>>
>> Thank you. That is a big help.
>>
>> In cases where a .bib stanza has something like "month = 27
>> October" biber complains, but it is not fatal.
>
> Both are very good examples of very bad data.
>
> month = 27 October : month means *month*, not day or date.
>
> Unfortunately, most of us get sent bad data all the time. Human brains
> are very good at working round it; computers are not :-)

Peter, thanks. A little mis-communication, for the quotation marks were
not in a .bib file, but only in my message. That is, this is what I
actually have:

month = 27 October

So if a publication appeared on a specific day, how does one incorporate
that in the .bib file so as not to produce warnings?

Haines

Johannes Böttcher

unread,
Jul 5, 2015, 11:10:29 AM7/5/15
to
On 07/05/2015 12:10 PM, Haines Brown wrote:
>
> Peter, thanks. A little mis-communication, for the quotation marks were
> not in a .bib file, but only in my message. That is, this is what I
> actually have:
>
> month = 27 October
>
> So if a publication appeared on a specific day, how does one incorporate
> that in the .bib file so as not to produce warnings?
>
> Haines
>


Dates are hoing to the `date` field.

date = {2015-07-05},

Johannes

Peter Flynn

unread,
Jul 5, 2015, 6:06:42 PM7/5/15
to
On 07/05/2015 11:10 AM, Haines Brown wrote:
> Peter Flynn <pe...@silmaril.ie> writes:
>
>> On 07/03/2015 10:20 AM, Haines Brown wrote:
>>> Ulrike Fischer <ne...@nililand.de> writes:
>>>
>>>> abstract={aaa "if a= b" bbb}
>>>>
>>>> should work fine.
>>>>
>>>> abstract="aaa "if a= b" bbb"
>>>
>>> Thank you. That is a big help.
>>>
>>> In cases where a .bib stanza has something like "month = 27
>>> October" biber complains, but it is not fatal.
>>
>> Both are very good examples of very bad data.
>>
>> month = 27 October : month means *month*, not day or date.
>>
>> Unfortunately, most of us get sent bad data all the time. Human brains
>> are very good at working round it; computers are not :-)
>
> Peter, thanks. A little mis-communication, for the quotation marks were
> not in a .bib file, but only in my message.

My comment about quotes (delimiters) referred to the example
abstract="aaa "if a= b" bbb"

> That is, this is what I actually have:
>
> month = 27 October

This is illegal in a BIBTeX file. You can only omit the delimiters if
the value is *entirely* numeric, eg year = 2015, so it should be
month = {Oct} or month = "Oct".

> So if a publication appeared on a specific day, how does one incorporate
> that in the .bib file so as not to produce warnings?

I think Johannes has answered that.

///Peter

Haines Brown

unread,
Jul 9, 2015, 10:54:21 AM7/9/15
to
Thank you for the clarification

Herbert Schulz

unread,
Jul 24, 2015, 1:09:30 PM7/24/15
to
Howdy,

When I have problems with biber I run

rm -rf `/usr/texbin/biber --cache`

to remove the complete cache.

Good Luck,
Herb Schulz

0 new messages