Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parsing of BibTeX files exported from Zotero using BetterBibLaTeX #48

Closed
michal-h21 opened this issue Nov 15, 2023 · 5 comments
Closed

Comments

@michal-h21
Copy link
Contributor

Describe the bug

I've got a bug report from an user who exported his Zotero records using the BetterBibLaTeX plugin. He got a fatal error from the parsing of that file:

...ocal/texlive/2023/texmf-dist/tex/latex/base/ltluatex.lua:89: bad argument #1
 to 'sub' (string expected, got nil)
stack traceback:
        [C]: in function 'string.sub'
        ...ocal/texlive/2023/texmf-dist/tex/latex/base/ltluatex.lua:89: in upvalue 'ms
g_format'
        ...ocal/texlive/2023/texmf-dist/tex/latex/base/ltluatex.lua:105: in field 'mod
ule_warning'
        ...f-dist/scripts/citation-style-language/citeproc-util.lua:176: in function '
citeproc-util.warning'
        ...ripts/citation-style-language/citeproc-bibtex-parser.lua:340: in function '
citeproc-bibtex-parser.split_name_parts'
        .../scripts/citation-style-language/citeproc-bibtex2csl.lua:240: in function '
citeproc-bibtex2csl.convert_field'
        .../scripts/citation-style-language/citeproc-bibtex2csl.lua:101: in function '
citeproc-bibtex2csl.convert_to_csl_item'
        .../scripts/citation-style-language/citeproc-bibtex2csl.lua:75: in function 'c
iteproc-bibtex2csl.convert_to_csl_data'
        .../scripts/citation-style-language/citeproc-latex-core.lua:153: in upvalue 'r
ead_data_files'
        .../scripts/citation-style-language/citeproc-latex-core.lua:199: in function '
citeproc-latex-core.make_citeproc_sys'
        .../scripts/citation-style-language/citeproc-latex-core.lua:237: in function '
citeproc-latex-core.init'
        ...-dist/scripts/citation-style-language/citeproc-latex.lua:33: in function 'c
iteproc-latex.init'
        [\directlua]:1: in main chunk.
\lua_now:e #1->\__lua_now:n {#1}
                                
l.23 \begin{document}

I've found that this is caused by the author field, which looks like this:

author = {family=Geijersstam, given=V., prefix=af, useprefix=true and Kibur, M. and Wang, Z. and Koskela, P. and Pukkala, E. and Schiller, J. and Lehtinen, M. and Dillner, J.}

Additional information

  • TeX distribution: TeX Live 2023
  • Package citation-style-language version: 2023-10-05 v0.4.5
  • LaTeX engine: lualatex, pdflatex

To Reproduce

\documentclass{article}
\begin{filecontents}[overwrite, noheader]{\jobname.bib}
@article{afGeijersstam1998Stability,
  title = {Stability over Time of Serum Antibody Levels to Human Papillomavirus Type 16},
  author = {family=Geijersstam, given=V., prefix=af, useprefix=true and Kibur, M. and Wang, Z. and Koskela, P. and Pukkala, E. and Schiller, J. and Lehtinen, M. and Dillner, J.},
  date = {1998-06},
  journaltitle = {J Infect Dis},
  volume = {177},
  number = {6},
  eprint = {9607854},
  eprinttype = {pmid},
  pages = {1710--1714},
  issn = {0022-1899},
  doi = {10.1086/517428},
  abstract = {The stability over time of serum IgG antibody levels to human papillomavirus type 16 (HPV-16) was determined by comparing the HPV-16 capsid antibody levels in serial serum samples of an age-stratified random subsample of 1656 primiparous mothers resident in Helsinki who were followed until their second pregnancy, on average 29.5 months later. The correlation between the first and second pregnancy HPV-16 serum antibody levels of the same woman was high, even when {$>$}4 years had elapsed between pregnancies (r = .822). Between negativity, indeterminate results, or quartiles of positivity, the predictive values for being classified in the same category on both occasions ranged between 42\% and 91\%. Correlation coefficients, predictive values, and kappa coefficients between serial samples all were comparable with those of repeat analyses of the same sample, indicating that HPV capsid antibody levels are generally stable during several years of follow-up.},
  langid = {english},
  keywords = {Adolescent,Adult,Antibodies,Capsid,Capsid Proteins,Female,Humans,Infectious,Oncogene Proteins,Papillomaviridae,Papillomavirus Infections,Pregnancy,Pregnancy Complications,Time Factors,Tumor Virus Infections,Viral}
}
\end{filecontents}

\usepackage{citation-style-language}
\addbibresource{\jobname.bib}
\begin{document}
\cite{afGeijersstam1998Stability}
\printbibliography
\end{document}

With lualatex, you will get the original error. When compiled using

$ pdflatex mwe
$ citeproc-lua mwe

You will get:

This is citeproc-lua, Version 0.4.5
The top-level auxiliary file: mwe.aux
Database file #1: mwe.bib
...f-dist/scripts/citation-style-language/citeproc-util.lua:181: attempt to concatenate a nil value (local 'message')
@zepinglee
Copy link
Owner

Thanks for your feedback and I can reproduce the error. The value of author is in biblatex's extended name format which I've not implemented.

At the moment I suggest exporting to CSL-JSON format from Zotero since the reference data is always converted to CSL-JSON before processed if it's in bib(la)tex format. Alternatively the user can turn off BetterBibTeX's option "using BibLaTeX extended name format".
Screenshot 2023-11-16 at 00 04 43

@michal-h21
Copy link
Contributor Author

Yes, it was easy for OP to export his record in a different way once we found the source of the issue. I didn't know that this extended name format even exists, so it was surprising for me as well. I don't think it is necessary to support this format completely, it would be just nice to prevent a compilation error :)

@zepinglee
Copy link
Owner

I don't think it is necessary to support this format completely, it would be just nice to prevent a compilation error :)

It should not be hard to support that. And I'll fix this error.

@michal-h21
Copy link
Contributor Author

That's great! Thanks.

@zepinglee
Copy link
Owner

Added in 2a77ddb.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants