JabRef no puede leer el archivo .bib creado por JabRef 3.0

JabRef no puede leer el archivo .bib creado por JabRef 3.0

Estoy migrando a una nueva configuración de computadora y cuando instalé JabRef 3.8.2 descubrí que no podía leer los archivos .bib creados por JabRef 3.0. Solo aparecen 991 de 3140 entradas y hay un mensaje de error (ver el final de esta publicación).

He mirado las líneas supuestamente malas en un editor de texto y realmente no veo ninguna coma faltante. Pero eso es lo que cabría esperar, porque nunca edito el archivo .bib a mano, lo genera JabRef.

¿Hay alguna manera de solucionar el problema? Me estoy recuperando del dolor al escribir, así que primero probaré los métodos menos intensivos de escritura.

Aquí está el mensaje de error:

1. Se produjo un error al analizar la entrada: 'Error en la línea 4815 o superior: token de texto vacío.
Esto podría deberse a que falta una coma entre dos campos.'. Entrada saltada.
2. Se produjo un error al analizar la entrada: 'Error en la línea 6304 o superior: token de texto vacío.
Esto podría deberse a que falta una coma entre dos campos.'. Entrada saltada.
3. Se produjo un error al analizar la entrada: 'Error en la línea 6393 o superior: token de texto vacío.
Esto podría deberse a que falta una coma entre dos campos.'. Entrada saltada.
4. Se produjo un error al analizar la entrada: 'Error en la línea 6904 o superior: token de texto vacío.
Esto podría deberse a que falta una coma entre dos campos.'. Entrada saltada.
5. Se produjo un error al analizar la entrada: 'Error en la línea 8560 o superior: token de texto vacío.
Esto podría deberse a que falta una coma entre dos campos.'. Entrada saltada.
6. Se produjo un error al analizar la entrada: 'Error en la línea 9697 o superior: token de texto vacío.
Esto podría deberse a que falta una coma entre dos campos.'. Entrada saltada.
7. Se produjo un error al analizar la entrada: 'Error en la línea 13249 o superior: token de texto vacío.
Esto podría deberse a que falta una coma entre dos campos.'. Entrada saltada.
8. Se produjo un error al analizar la entrada: 'Error en la línea 13646 o superior: token de texto vacío.
Esto podría deberse a que falta una coma entre dos campos.'. Entrada saltada.
9. Se produjo un error al analizar la entrada: 'Error en la línea 14067 o superior: token de texto vacío.
Esto podría deberse a que falta una coma entre dos campos.'. Entrada saltada.
10. Se produjo un error al analizar la entrada: 'Error en la línea 15177 o superior: token de texto vacío.
Esto podría deberse a que falta una coma entre dos campos.'. Entrada saltada.
11. Se produjo un error al analizar la entrada: 'Error en la línea 15530 o superior: token de texto vacío.
Esto podría deberse a que falta una coma entre dos campos.'. Entrada saltada.
12. Se produjo un error al analizar la entrada: 'Error en la línea 16010 o superior: token de texto vacío.
Esto podría deberse a que falta una coma entre dos campos.'. Entrada saltada.
13. Se produjo un error al analizar la entrada: 'Error en la línea 51479: EOF en mitad de la cadena'. Entrada saltada.

Información adicional solicitada

Aquí estáun enlace a mi archivo .bib completo.

Aquí está la primera entrada que generó un error:

@Libro{burzio.1994,
  Título = {{P}principios de {E}nglish {S}tress},
  Autor = {Burzio, L.},
  Editor = {Cambridge University Press},
  Año = {1994},
  Dirección = {Cambridge, Reino Unido},
  Palabras clave = {fonología, acento, },
  Lccn = {Préstamo directo solicitado el 8 de mayo de 2008, 7 de noviembre de 2008.},
  Propietario = {Palabra},
  Marca de tiempo = {2009.07.31}
}

Respuesta1

Ya que soy yo quien resolvió tu problema.en el rastreador de problemas de JabRef que vinculó arriba, Agregaré mi respuesta de resolución desde github directamente aquí a este sitio. Esto hace que tex.stackechange sea un poco más autónomo.

Eché un vistazo a su archivo y encontré al menos una entrada con un error. Supongo que los problemas restantes son de naturaleza similar. Aquí está la 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}
}

El problema está en el campo de título que termina en \}. La barra invertida escapa de la llave, lo que hace que JabRef la ignore durante el análisis y genera un error. Si elimina la barra invertida, la entrada se carga bien.

Hasta donde yo sé, JabRef tiene razón al rechazar esta entrada. No puedo decir por qué JabRef 3.0 alguna vez lo serializó de esta manera, pero supongo que fue un error (eso ya no debería suceder).

Mi recomendación para usted es inspeccionar el archivo en un editor de texto, buscar apariciones \}y eliminar la barra invertida. Como mencionaste en github, esto resolvió tu problema.

Respuesta2

Respuesta3

Tenga en cuenta que puede surgir un problema similar cuando intenta escribir la "L con trazo" polaca de manera incorrecta.

Ejemplo: si incluye el nombre del autor "Tałanda, A." como Ta{\{l}}anda, A.en la línea 5000 de su archivo bibtex, JabRef informará el siguiente error:

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

Para evitar este error, hay que escribir la “L con trazo” de la siguiente manera (sin que la “L” vaya entre llaves): Ta{\l}anda, A.

Dejo esto aquí en caso de que alguien más encuentre este problema.

información relacionada