plk / biber

Backend processor for BibLaTeX
Artistic License 2.0
339 stars 38 forks source link

Filenames with spaces not found #308

Closed moewew closed 4 years ago

moewew commented 4 years ago

With Biber 2.14 and 2.15 dev (from 2020-02-08) the following MWE will not produce any .bbl output on Windows

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear, backend=biber]{biblatex}

\begin{filecontents}[force]{with space.bib}
@book{appleby,
  author  = {Humphrey Appleby},
  title   = {On the Importance of the Civil Service},
  date    = {1980},
}
\end{filecontents}
\addbibresource{with space.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson,appleby}
\printbibliography
\end{document}

instead Biber complains

[0] Config.pm:304> INFO - This is Biber 2.15 (beta)
[0] Config.pm:307> INFO - Logfile is 'Namenlos-71.blg'
[245] biber-MSWIN64:327> INFO - === 
[305] Biber.pm:415> INFO - Reading 'Namenlos-71.bcf'
[501] Biber.pm:952> INFO - Found 2 citekeys in bib section 0
[522] Biber.pm:4265> INFO - Processing section 0
[522] Utils.pm:75> INFO - Globbing data source 'with space.bib'
[537] Utils.pm:91> INFO - Globbed data source 'with space.bib' to with\ space.bib
[537] Utils.pm:75> INFO - Globbing data source 'biblatex-examples.bib'
[537] Utils.pm:91> INFO - Globbed data source 'biblatex-examples.bib' to biblatex-examples.bib
[559] Biber.pm:4464> INFO - Looking for bibtex format file 'with\ space.bib' for section 0
[981] Utils.pm:320> ERROR - Cannot find 'with\ space.bib'!
[981] Biber.pm:132> INFO - ERRORS: 1

I'll do some tests with Ubuntu and Biber 2.14 from TeX live 2020 (tlpretest) later today and will report back tonight.


Related #280, #288.

Recent TeX.SX posts: https://tex.stackexchange.com/q/531020/35864, https://tex.stackexchange.com/q/529783/35864.

moewew commented 4 years ago

I tested the MWE on Ubuntu with Biber 2.14 and it compiles as expected. But on Ubuntu I can create issues if I have two spaces in file names:

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear, backend=biber]{biblatex}

\begin{filecontents}[force]{with several spaces.bib}
@book{appleby,
  author  = {Humphrey Appleby},
  title   = {On the Importance of the Civil Service},
  date    = {1980},
}
\end{filecontents}
\addbibresource{with several spaces.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson,appleby}
\printbibliography
\end{document}

gives

INFO - This is Biber 2.14
INFO - Logfile is 'spacetest.blg'
INFO - Reading 'spacetest.bcf'
INFO - Found 2 citekeys in bib section 0
INFO - Processing section 0
INFO - Globbing data source 'with several spaces.bib'
INFO - Globbed data source 'with several spaces.bib' to with several,spaces.bib
INFO - Globbing data source 'biblatex-examples.bib'
INFO - Globbed data source 'biblatex-examples.bib' to biblatex-examples.bib
INFO - Looking for bibtex format file 'with several' for section 0
ERROR - Cannot find 'with several'!
INFO - ERRORS: 1 

it's a similar picture on my Windows machine

[0] Config.pm:304> INFO - This is Biber 2.14
[0] Config.pm:307> INFO - Logfile is 'Namenlos-70.blg'
[92] biber-MSWIN64:322> INFO - === 
[162] Biber.pm:415> INFO - Reading 'Namenlos-70.bcf'
[305] Biber.pm:943> INFO - Found 2 citekeys in bib section 0
[336] Biber.pm:4256> INFO - Processing section 0
[336] Utils.pm:75> INFO - Globbing data source 'with several spaces.bib'
[377] Utils.pm:91> INFO - Globbed data source 'with several spaces.bib' to with\ several,spaces.bib
[377] Utils.pm:75> INFO - Globbing data source 'biblatex-examples.bib'
[377] Utils.pm:91> INFO - Globbed data source 'biblatex-examples.bib' to biblatex-examples.bib
[410] Biber.pm:4455> INFO - Looking for bibtex format file 'with\ several' for section 0
[871] Utils.pm:320> ERROR - Cannot find 'with\ several'!
[871] Biber.pm:132> INFO - ERRORS: 1
plk commented 4 years ago

Please try current DEV - I think this was a bug but I can't currently test on Ubuntu. If you could check in Windows, would be appreciated.

moewew commented 4 years ago

On Windows I still get

[0] Config.pm:304> INFO - This is Biber 2.15 (beta)
[0] Config.pm:307> INFO - Logfile is 'spacesone.blg'
[139] biber-MSWIN64:327> INFO - === 
[185] Biber.pm:415> INFO - Reading 'spacesone.bcf'
[652] Biber.pm:952> INFO - Found 2 citekeys in bib section 0
[692] Biber.pm:4265> INFO - Processing section 0
[693] Utils.pm:75> INFO - Globbing data source 'with space.bib'
[729] Utils.pm:91> INFO - Globbed data source 'with space.bib' to with\ space.bib
[730] Utils.pm:75> INFO - Globbing data source 'biblatex-examples.bib'
[730] Utils.pm:91> INFO - Globbed data source 'biblatex-examples.bib' to biblatex-examples.bib
[752] Biber.pm:4464> INFO - Looking for bibtex format file 'with\ space.bib' for section 0
[1188] Utils.pm:320> ERROR - Cannot find 'with\ space.bib'!
[1190] Biber.pm:132> INFO - ERRORS: 1

for the first MWE. And

[1] Config.pm:304> INFO - This is Biber 2.15 (beta)
[1] Config.pm:307> INFO - Logfile is 'spacestwo.blg'
[107] biber-MSWIN64:327> INFO - === 
[135] Biber.pm:415> INFO - Reading 'spacestwo.bcf'
[305] Biber.pm:952> INFO - Found 2 citekeys in bib section 0
[331] Biber.pm:4265> INFO - Processing section 0
[332] Utils.pm:75> INFO - Globbing data source 'with several spaces.bib'
[348] Utils.pm:91> INFO - Globbed data source 'with several spaces.bib' to with\ several,spaces.bib
[348] Utils.pm:75> INFO - Globbing data source 'biblatex-examples.bib'
[349] Utils.pm:91> INFO - Globbed data source 'biblatex-examples.bib' to biblatex-examples.bib
[376] Biber.pm:4464> INFO - Looking for bibtex format file 'with\ several' for section 0
[943] Utils.pm:320> ERROR - Cannot find 'with\ several'!
[943] Biber.pm:132> INFO - ERRORS: 1

for the second.

plk commented 4 years ago

And now?

moewew commented 4 years ago

On Windows

[0] Config.pm:304> INFO - This is Biber 2.15 (beta)
[0] Config.pm:307> INFO - Logfile is 'spacesone.blg'
[180] biber-MSWIN64:327> INFO - === 
[225] Biber.pm:415> INFO - Reading 'spacesone.bcf'
[576] Biber.pm:952> INFO - Found 2 citekeys in bib section 0
[652] Biber.pm:4265> INFO - Processing section 0
[653] Utils.pm:75> INFO - Globbing data source 'with space.bib'
[724] Utils.pm:92> INFO - Globbed data source 'with space.bib' to with,space.bib
[724] Utils.pm:75> INFO - Globbing data source 'biblatex-examples.bib'
[725] Utils.pm:92> INFO - Globbed data source 'biblatex-examples.bib' to biblatex-examples.bib
[786] Biber.pm:4464> INFO - Looking for bibtex format file 'with' for section 0
[2262] Utils.pm:321> ERROR - Cannot find 'with'!
[2267] Biber.pm:132> INFO - ERRORS: 1

and

[1] Config.pm:304> INFO - This is Biber 2.15 (beta)
[1] Config.pm:307> INFO - Logfile is 'spacestwo.blg'
[281] biber-MSWIN64:327> INFO - === 
[354] Biber.pm:415> INFO - Reading 'spacestwo.bcf'
[836] Biber.pm:952> INFO - Found 2 citekeys in bib section 0
[907] Biber.pm:4265> INFO - Processing section 0
[907] Utils.pm:75> INFO - Globbing data source 'with several spaces.bib'
[933] Utils.pm:92> INFO - Globbed data source 'with several spaces.bib' to with,several,spaces.bib
[933] Utils.pm:75> INFO - Globbing data source 'biblatex-examples.bib'
[934] Utils.pm:92> INFO - Globbed data source 'biblatex-examples.bib' to biblatex-examples.bib
[971] Biber.pm:4464> INFO - Looking for bibtex format file 'with' for section 0
[2009] Utils.pm:321> ERROR - Cannot find 'with'!
[2016] Biber.pm:132> INFO - ERRORS: 1
plk commented 4 years ago

Hmm - once more?

moewew commented 4 years ago

Much better on the globbing front. But now the kpsewhich lookup for biblatex-examples.bib fails.

[0] Config.pm:304> INFO - This is Biber 2.15 (beta)
[0] Config.pm:307> INFO - Logfile is 'spacesone.blg'
[98] biber-MSWIN64:327> INFO - === 
[167] Biber.pm:415> INFO - Reading 'spacesone.bcf'
[410] Biber.pm:952> INFO - Found 2 citekeys in bib section 0
[434] Biber.pm:4265> INFO - Processing section 0
[435] Utils.pm:75> INFO - Globbing data source 'with space.bib'
[475] Utils.pm:92> INFO - Globbed data source 'with space.bib' to with space.bib
[475] Utils.pm:75> INFO - Globbing data source 'biblatex-examples.bib'
[476] Utils.pm:92> INFO - Globbed data source 'biblatex-examples.bib' to 
[498] Biber.pm:4464> INFO - Looking for bibtex format file 'with space.bib' for section 0
[508] bibtex.pm:1653> INFO - LaTeX decoding ...
[522] bibtex.pm:1471> INFO - Found BibTeX data source 'with space.bib'
[563] Utils.pm:305> WARN - I didn't find a database entry for 'sigfridsson' (section 0)
[581] UCollate.pm:68> INFO - Overriding locale 'en-GB' defaults 'variable = shifted' with 'variable = non-ignorable'
[581] UCollate.pm:68> INFO - Overriding locale 'en-GB' defaults 'normalization = NFD' with 'normalization = prenormalized'
[581] Biber.pm:4093> INFO - Sorting list 'nyt/global//global/global' of type 'entry' with template 'nyt' and locale 'en-GB'
[582] Biber.pm:4099> INFO - No sort tailoring available for locale 'en-GB'
[586] bbl.pm:652> INFO - Writing 'spacesone.bbl' with encoding 'UTF-8'
[587] bbl.pm:755> INFO - Output to spacesone.bbl
[594] Biber.pm:128> INFO - WARNINGS: 1
[1] Config.pm:304> INFO - This is Biber 2.15 (beta)
[1] Config.pm:307> INFO - Logfile is 'spacestwo.blg'
[222] biber-MSWIN64:327> INFO - === 
[316] Biber.pm:415> INFO - Reading 'spacestwo.bcf'
[496] Biber.pm:952> INFO - Found 2 citekeys in bib section 0
[534] Biber.pm:4265> INFO - Processing section 0
[534] Utils.pm:75> INFO - Globbing data source 'with several spaces.bib'
[592] Utils.pm:92> INFO - Globbed data source 'with several spaces.bib' to with several spaces.bib
[592] Utils.pm:75> INFO - Globbing data source 'biblatex-examples.bib'
[593] Utils.pm:92> INFO - Globbed data source 'biblatex-examples.bib' to 
[718] Biber.pm:4464> INFO - Looking for bibtex format file 'with several spaces.bib' for section 0
[728] bibtex.pm:1653> INFO - LaTeX decoding ...
[741] bibtex.pm:1471> INFO - Found BibTeX data source 'with several spaces.bib'
[815] Utils.pm:305> WARN - I didn't find a database entry for 'sigfridsson' (section 0)
[831] UCollate.pm:68> INFO - Overriding locale 'en-GB' defaults 'variable = shifted' with 'variable = non-ignorable'
[831] UCollate.pm:68> INFO - Overriding locale 'en-GB' defaults 'normalization = NFD' with 'normalization = prenormalized'
[831] Biber.pm:4093> INFO - Sorting list 'nyt/global//global/global' of type 'entry' with template 'nyt' and locale 'en-GB'
[831] Biber.pm:4099> INFO - No sort tailoring available for locale 'en-GB'
[836] bbl.pm:652> INFO - Writing 'spacestwo.bbl' with encoding 'UTF-8'
[838] bbl.pm:755> INFO - Output to spacestwo.bbl
[839] Biber.pm:128> INFO - WARNINGS: 1

To wit

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear, backend=biber]{biblatex}

\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson}
\printbibliography
\end{document}

gives

[0] Config.pm:304> INFO - This is Biber 2.15 (beta)
[0] Config.pm:307> INFO - Logfile is 'kpselookup.blg'
[98] biber-MSWIN64:327> INFO - === 
[125] Biber.pm:415> INFO - Reading 'kpselookup.bcf'
[276] Biber.pm:952> INFO - Found 1 citekeys in bib section 0
[296] Biber.pm:4265> INFO - Processing section 0
[297] Utils.pm:75> INFO - Globbing data source 'biblatex-examples.bib'
[309] Utils.pm:92> INFO - Globbed data source 'biblatex-examples.bib' to 
plk commented 4 years ago

Once more ...

moewew commented 4 years ago

Result!

The MWEs work fine on Windows.

[0] Config.pm:304> INFO - This is Biber 2.15 (beta)
[0] Config.pm:307> INFO - Logfile is 'spacesone.blg'
[196] biber-MSWIN64:327> INFO - === 
[1223] Biber.pm:415> INFO - Reading 'spacesone.bcf'
[1463] Biber.pm:952> INFO - Found 2 citekeys in bib section 0
[1829] Biber.pm:4265> INFO - Processing section 0
[1899] Utils.pm:75> INFO - Globbing data source 'with space.bib'
[2521] Utils.pm:91> INFO - Globbed data source 'with space.bib' to 'with space.bib'
[2522] Utils.pm:75> INFO - Globbing data source 'biblatex-examples.bib'
[2523] Utils.pm:91> INFO - Globbed data source 'biblatex-examples.bib' to 'biblatex-examples.bib'
[2633] Biber.pm:4464> INFO - Looking for bibtex format file 'with space.bib' for section 0
[2651] bibtex.pm:1653> INFO - LaTeX decoding ...
[2661] bibtex.pm:1471> INFO - Found BibTeX data source 'with space.bib'
[2743] Biber.pm:4464> INFO - Looking for bibtex format file 'biblatex-examples.bib' for section 0
[3432] bibtex.pm:1653> INFO - LaTeX decoding ...
[3846] bibtex.pm:1471> INFO - Found BibTeX data source 'C:/Program Files/MiKTeX 2.9/bibtex/bib/biblatex/biblatex-examples.bib'
[3886] UCollate.pm:68> INFO - Overriding locale 'en-GB' defaults 'variable = shifted' with 'variable = non-ignorable'
[3886] UCollate.pm:68> INFO - Overriding locale 'en-GB' defaults 'normalization = NFD' with 'normalization = prenormalized'
[3886] Biber.pm:4093> INFO - Sorting list 'nyt/global//global/global' of type 'entry' with template 'nyt' and locale 'en-GB'
[3886] Biber.pm:4099> INFO - No sort tailoring available for locale 'en-GB'
[3891] bbl.pm:652> INFO - Writing 'spacesone.bbl' with encoding 'UTF-8'
[3893] bbl.pm:755> INFO - Output to spacesone.bbl
[0] Config.pm:304> INFO - This is Biber 2.15 (beta)
[0] Config.pm:307> INFO - Logfile is 'spacestwo.blg'
[103] biber-MSWIN64:327> INFO - === 
[141] Biber.pm:415> INFO - Reading 'spacestwo.bcf'
[322] Biber.pm:952> INFO - Found 2 citekeys in bib section 0
[344] Biber.pm:4265> INFO - Processing section 0
[345] Utils.pm:75> INFO - Globbing data source 'with several spaces.bib'
[355] Utils.pm:91> INFO - Globbed data source 'with several spaces.bib' to 'with several spaces.bib'
[356] Utils.pm:75> INFO - Globbing data source 'biblatex-examples.bib'
[356] Utils.pm:91> INFO - Globbed data source 'biblatex-examples.bib' to 'biblatex-examples.bib'
[375] Biber.pm:4464> INFO - Looking for bibtex format file 'with several spaces.bib' for section 0
[387] bibtex.pm:1653> INFO - LaTeX decoding ...
[392] bibtex.pm:1471> INFO - Found BibTeX data source 'with several spaces.bib'
[426] Biber.pm:4464> INFO - Looking for bibtex format file 'biblatex-examples.bib' for section 0
[1150] bibtex.pm:1653> INFO - LaTeX decoding ...
[1589] bibtex.pm:1471> INFO - Found BibTeX data source 'C:/Program Files/MiKTeX 2.9/bibtex/bib/biblatex/biblatex-examples.bib'
[1638] UCollate.pm:68> INFO - Overriding locale 'en-GB' defaults 'normalization = NFD' with 'normalization = prenormalized'
[1638] UCollate.pm:68> INFO - Overriding locale 'en-GB' defaults 'variable = shifted' with 'variable = non-ignorable'
[1638] Biber.pm:4093> INFO - Sorting list 'nyt/global//global/global' of type 'entry' with template 'nyt' and locale 'en-GB'
[1638] Biber.pm:4099> INFO - No sort tailoring available for locale 'en-GB'
[1643] bbl.pm:652> INFO - Writing 'spacestwo.bbl' with encoding 'UTF-8'
[1646] bbl.pm:755> INFO - Output to spacestwo.bbl
[0] Config.pm:304> INFO - This is Biber 2.15 (beta)
[0] Config.pm:307> INFO - Logfile is 'muchbetteromtheglobbingfront.blg'
[188] biber-MSWIN64:327> INFO - === 
[230] Biber.pm:415> INFO - Reading 'muchbetteromtheglobbingfront.bcf'
[503] Biber.pm:952> INFO - Found 1 citekeys in bib section 0
[531] Biber.pm:4265> INFO - Processing section 0
[531] Utils.pm:75> INFO - Globbing data source 'biblatex-examples.bib'
[546] Utils.pm:91> INFO - Globbed data source 'biblatex-examples.bib' to 'biblatex-examples.bib'
[575] Biber.pm:4464> INFO - Looking for bibtex format file 'biblatex-examples.bib' for section 0
[1016] bibtex.pm:1653> INFO - LaTeX decoding ...
[1400] bibtex.pm:1471> INFO - Found BibTeX data source 'C:/Program Files/MiKTeX 2.9/bibtex/bib/biblatex/biblatex-examples.bib'
[1465] UCollate.pm:68> INFO - Overriding locale 'en-GB' defaults 'normalization = NFD' with 'normalization = prenormalized'
[1465] UCollate.pm:68> INFO - Overriding locale 'en-GB' defaults 'variable = shifted' with 'variable = non-ignorable'
[1465] Biber.pm:4093> INFO - Sorting list 'nyt/global//global/global' of type 'entry' with template 'nyt' and locale 'en-GB'
[1465] Biber.pm:4099> INFO - No sort tailoring available for locale 'en-GB'
[1468] bbl.pm:652> INFO - Writing 'muchbetteromtheglobbingfront.bbl' with encoding 'UTF-8'
[1470] bbl.pm:755> INFO - Output to muchbetteromtheglobbingfront.bbl

I also tested the MWEs on Ubuntu and they worked fine there as well.

Thank you very much.

plk commented 4 years ago

Typical multi-level quoting required to deal with Windows and spaces on UNIX, which isn't that keen on them.

sergeysanovich commented 4 years ago

Still an issue, both on my local machine and on Overleaf: files that used to work flawlessly no longer compile, and it's very hard to identify what's the problem. People less experienced in latex might get completely lost.

moewew commented 4 years ago

What version of Biber are you using (on your machine)?

Biber 2.15 with the fix for file names with spaces was relesed only very recently. It is on CTAN and in TeX live, but it hasn't quite made it into MikTeX yet (but I'm guessing it can't be more than a few days now). I tested several example file names with spaces with TeX live's Biber 2.15 on Ubuntu this morning and everything went fine. Since I'm using MikTeX on my Windows machine, I only tested manually installed dev builds, but those worked fine as well.

Overleaf don't run a cutting edge TeX live. They update their systems from time to time, but that is usually a larger operation and announced in the company blog. I think there are plans to offer TeX live 2020 soon-ish, but I don't know if that will include Biber 2.15/biblatex 3.15 or if the image will be based on something slightly older (Overleaf do a lot of testing before they let stuff loose on their customers).

If files with spaces used to work on Overleaf it may be an option to choose an older TeX live version (https://www.overleaf.com/blog/new-feature-select-your-tex-live-compiler-version) for the time being.