JabRef não consegue ler o arquivo .bib criado pelo JabRef 3.0

JabRef não consegue ler o arquivo .bib criado pelo JabRef 3.0

Estou migrando para uma nova configuração de computador e, quando instalei o JabRef 3.8.2, descobri que ele não conseguia ler os arquivos .bib criados pelo JabRef 3.0. Apenas 991 das 3.140 entradas aparecem e há uma mensagem de erro (veja o final desta postagem).

Examinei as linhas supostamente ruins em um editor de texto e realmente não vejo nenhuma vírgula faltando. Mas é isso que você esperaria, porque eu nunca edito o arquivo .bib manualmente, ele é gerado pelo JabRef.

Existe uma maneira de resolver o problema? Estou me recuperando da dor ao digitar, então tentarei primeiro os métodos menos intensivos de digitação.

Aqui está a mensagem de erro:

1. Ocorreu um erro ao analisar a entrada: 'Erro na linha 4815 ou superior: token de texto vazio.
Isso pode ser causado pela falta de uma vírgula entre dois campos.'. Entrada ignorada.
2. Ocorreu um erro ao analisar a entrada: 'Erro na linha 6304 ou superior: token de texto vazio.
Isso pode ser causado pela falta de uma vírgula entre dois campos.'. Entrada ignorada.
3. Ocorreu um erro ao analisar a entrada: 'Erro na linha 6393 ou superior: token de texto vazio.
Isso pode ser causado pela falta de uma vírgula entre dois campos.'. Entrada ignorada.
4. Ocorreu um erro ao analisar a entrada: 'Erro na linha 6904 ou superior: token de texto vazio.
Isso pode ser causado pela falta de uma vírgula entre dois campos.'. Entrada ignorada.
5. Ocorreu um erro ao analisar a entrada: 'Erro na linha 8560 ou superior: token de texto vazio.
Isso pode ser causado pela falta de uma vírgula entre dois campos.'. Entrada ignorada.
6. Ocorreu um erro ao analisar a entrada: 'Erro na linha 9697 ou superior: token de texto vazio.
Isso pode ser causado pela falta de uma vírgula entre dois campos.'. Entrada ignorada.
7. Ocorreu um erro ao analisar a entrada: 'Erro na linha 13249 ou superior: token de texto vazio.
Isso pode ser causado pela falta de uma vírgula entre dois campos.'. Entrada ignorada.
8. Ocorreu um erro ao analisar a entrada: 'Erro na linha 13646 ou superior: token de texto vazio.
Isso pode ser causado pela falta de uma vírgula entre dois campos.'. Entrada ignorada.
9. Ocorreu um erro ao analisar a entrada: 'Erro na linha 14067 ou superior: token de texto vazio.
Isso pode ser causado pela falta de uma vírgula entre dois campos.'. Entrada ignorada.
10. Ocorreu um erro ao analisar a entrada: 'Erro na linha 15177 ou superior: token de texto vazio.
Isso pode ser causado pela falta de uma vírgula entre dois campos.'. Entrada ignorada.
11. Ocorreu um erro ao analisar a entrada: 'Erro na linha 15530 ou superior: token de texto vazio.
Isso pode ser causado pela falta de uma vírgula entre dois campos.'. Entrada ignorada.
12. Ocorreu um erro ao analisar a entrada: 'Erro na linha 16010 ou superior: token de texto vazio.
Isso pode ser causado pela falta de uma vírgula entre dois campos.'. Entrada ignorada.
13. Ocorreu um erro ao analisar a entrada: 'Erro na linha 51479: EOF no meio da string'. Entrada ignorada.

Informações adicionais solicitadas

Aqui estáum link para meu arquivo .bib completo.

Aqui está a primeira entrada que gerou um erro:

@Livro{burzio.1994,
  Título = {{Princípios de {E}inglês {S}tress},
  Autor = {Burzio, L.},
  Editora = {Cambridge University Press},
  Ano = {1994},
  Endereço = {Cambridge, Reino Unido},
  Palavras-chave = {fonologia, acento,},
  Lccn = {Empréstimo direto solicitado em 8 de maio de 2008, 7 de novembro de 2008.},
  Proprietário = {Palavra},
  Carimbo de data e hora = {2009.07.31}
}

Responder1

Já que fui eu quem resolveu seu problemano rastreador de problemas do JabRef que você linkou acima, adicionarei minha resposta de solução do github diretamente aqui neste site. Isso torna tex.stackechange um pouco mais independente.

Dei uma olhada em seu arquivo e encontrei pelo menos uma entrada com um erro. Presumo que os problemas restantes sejam de natureza semelhante. Aqui está a entrada problemática:

@Article{burrows.2007,
  Title                    = {{A}ll the way through: {T}esting for authorship in different frequency strata.\},
  Author                   = {Burrows, John.},
  Journal                  = {Literary and Linguistic Computing},
  Volume                   = {22},
  Year                     = {2007},
  Number                   = {1},
  Abstract                 = {Not very readable. Basic premise is that the most and least frequent
    words aren't so good as a guage, but maybe the middling frequency
    words will work as an indication of an author's style. I suppose
    the word 'stipulate' might never appear in my academic writing, but
    it would in Robert A. Heinlein's. That idea is useful, but I didn't
    understand the mechanics of his specific tests for them.},
  Endnotereftype           = {Journal Article},
  Keywords                 = {computational, stylometry},
  Owner                    = {EN},
  Shorttitle               = {All the way through: Testing for authorship in different frequency strata.},
  Timestamp                = {2009.08.06}
}

O problema está no campo de título que termina com \}. A barra invertida escapa da chave, o que faz com que o JabRef a ignore durante a análise e resulta em um erro. Se você remover a barra invertida, a entrada será carregada corretamente.

Pelo que sei, o JabRef está correto ao rejeitar esta entrada. Por que o JabRef 3.0 o serializou dessa maneira, não sei dizer, mas acho que foi um bug (isso não deveria mais acontecer).

Minha recomendação para você é inspecionar o arquivo em um editor de texto, procurar ocorrências \}e excluir a barra invertida. Como você mencionou no github, isso resolveu seu problema.

Responder2

Responder3

Observe que um problema semelhante pode surgir quando você tenta escrever o "L com traço" polonês da maneira errada.

Exemplo: se você incluir o nome do autor "Tałanda, A." como Ta{\{l}}anda, A.na linha 5000 do seu arquivo bibtex, o JabRef reportará o seguinte erro:

1. Error occurred when parsing entry: 'Error in line 5000: Expected = but received a'. Skipped entry.

Para evitar este erro, você deve escrever o "L com traço" da seguinte forma (sem o "L" estar entre colchetes): Ta{\l}anda, A.

Deixo isso aqui caso alguém encontre esse problema.

informação relacionada