2

Environment

  • I'm using MikTeX on Linux.
  • I have a project located at $PROJECTDIR/myproject.tex.
  • I have a bibliography for that project located at $LOCALTEXMF/bibtex/bib/mybibs/myproject.bib.
  • I have invoked the bib file with \addbibresource{myproject.bib} -- i.e. I have included the file extension in the tex file.
  • I have added $LOCALTEXMF to MikTeX's root directories (as I have tried to suggest with the pseudovariable name).
  • I have refreshed the filename database in the MikTeX console. (bibtex wouldn't work if I hadn't done this of course.)
  • kpsewhich myproject.bib correctly outputs $LOCALTEXMF/bibtex/bib/mybibs/myprojectb.bib.

Behavior

  • bibtex myproject works perfectly fine.
  • biber myproject returns ERROR - Cannot find 'myproject.bib'!.
  • If I copy myproject.bib to $PROJECTDIR/, then biber myproject works properly. This is clearly an issue of biber not searching in the local texmf tree.

Something strange

  • There is a softlink in a directory in my PATH called bibtex which points to /opt/miktex/bin/miktex-bibtex as expected.
  • There is a softlink in a directory in my PATH called biber which points to /opt/miktex/libexec/miktex/runexe. I don't understand why this wouldn't point to (the actually non-existent) /opt/miktex/bin/miktex-biber in analogy with bibtex.
  • /opt/miktex/libexec/miktex/runexe myproject returns a different error from biber myproject. The former command returns Sorry, but runexe did not succeed.. It is particularly perplexing to me that the softlink behaves differently from the executable to which it points.

Questions

  • Obviously I already have a workaround (use bibtex instead of biber), so this question is just academic/for my educational benefit.
  • Why does biber fail while bibtex succeeds?
  • Why does the biber softlink point to that runexe thing?
  • Why does the biber softlink behave different from calling that runexe thing directly?
4
  • 1
    I don't think that many people use MikTeX on Linux, so it is understandable that it's in general less tested. Most people on Linux use TeX Live. (Would that be an option for you?) The Biber binary is pretty special, because it is a packed Perl programme that has to unpack itself in order to run. This could explain the different links. Things are supposed to work if you run biber <filename>, so I wouldn't worry about the linkage in MikTeX's internals for now. ...
    – moewe
    Mar 3 at 7:04
  • 1
    ... Biber uses kpsewhich to search for .bib files that are not in the working directory, so the file should be found.
    – moewe
    Mar 3 at 7:04
  • 3
    To me this looks like an issue you might want to take to github.com/MiKTeX/miktex/issues.
    – moewe
    Mar 3 at 7:04
  • Thanks for the feedback, all! Based on your advice I'll report this as a bug. I do know that most people use texlive rather than MikTeX on Linux, but I like MikTeX better (mostly because I've struggled to get texliveonfly working recently). I have used texlive in the past and I could use it again, but I don't think the inability to use biber (given that bibtex works) is enough to induce me to give up easy on-the-fly package retrieval at the moment. Mar 3 at 14:36

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy